l楼主,我这用你刚才发的代码测试了下,没乱码 啊
认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
#include<stdio.h> int main() { char f(char a[8]);//个人 反对声明放在函数内部 char c[8]; scanf("%s",c); f(c); printf("%s\n",c); return 0; } char f(char a[8]) { int i,n=4; for(i=7;i>=3;i--) { i--; n=n-1; a[i]=a[i-n]; a[i-1]=32; } //原先scanf个数组强制添加了‘\0’,在a[4]位置,被字符‘9’覆盖 //为使字符串正常输出,应在a[7]位置添加结束符 return(a[i]); //虽然不算错,但这个函数返回串中某子符没有意义 }