楼主,你的问题在于没有对数组
r
初始化(而s的输出没有问题),这样输出的时候找不到结束符,所以就一直输出下去,因此出现了乱码。
提出两种修改方法,这两种方法都可以避免你的问题:
1、char
r[10000]={0};
后就可以了。这样你输入的字符串不管是多长,到时后面的都是结束符。
2、上面不对r进行初始化,而修改下面
for(i=0;s[i]!='\0';i++)
{
if((s[i]<='Z')&&(s[i]>='A'))
r[i]=s[i]+3;
else
if((s[i]<='z')&&(s[i]>='a'))
r[i]=s[i]-4;
else
r[i]=s[i];
}
r[i]='\0';
//在r的后面加上结束符就可以了