C的问题啊。。

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:51:08
#include<stdio.h>
#include "string.h"
main()
{
char str[30];
int i,j;
printf("请输入字符:");
gets(str);
j=strlen(str);

for(i=j-1;i>=0;i++)
if(str[i]==32)
printf(" ");
else if(str[i]<97)
{
str[i]+=32 ;
printf("%s",&str[i]);
}
else if(str[i]>97)
{
str[i]-=32;
printf("%s",&str[i]);

}

}这个代码为什么运行时输入字符回车后会出现乱码啊
改了后还是乱码啊。。。

这里你在循环中输出一个字符,不能用printf("%s",&str[i]); 这是错的;把这里改成printf("%c",str[i]);就可以了。你用的这一句printf("%s",&str[i]); 是说输出以str[i]开头的字符串,是一直输到遇到第一个'\0'时才停的。