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]); //虽然不算错,但这个函数返回串中某子符没有意义
}
