#include
int main(){
char array[5];
scanf("%s",&array);
for(int i=0;i<5;i++){
array[i] += 32;
}
//int n = 0;
printf("%s",array);
return 0;
}
程序如上,当把注释那一行省略后,输出结果里总有一个♣,但加上以后就好了。
求解,万分感谢!
你定义5,只能输入4个字符。
你的字符串最后一个字符是\0,不能加。
在定义数组的时候将5改为4,或者在循环的时候直接小于等于5
注意空出一个给换行符
char array[5];
scanf("%s",&array);
for(int i=0;i<5;i++){
array[i] += 32;
}
array[5] 是长度为5的字符数组。 把%s是从键盘输入字符串,字符串和字符数组是有区别的,你试着把%s改为%c 用for循环把字符加载到字符数组中
scanf("%s",array);//要改一下,没有取地址运算符&
//array就是数组array的地址
//然后楼上说的估计是你的编译器的问题,不同编译器编译出来的结果不完全一样;
//像gcc就没有出现你的乱码问题
/然后楼上说的估计是你的编译器的问题,不同编译器编译出来的结果不完全一样;