【发布时间】:2014-12-21 03:28:45
【问题描述】:
当我在同一个循环中转换并打印它时,我得到的结果加上一个我不知道它来自哪里的垃圾。 示例:
输入:
char array_ch[]={'A','B','C','D','E'};
int i=0;
for(i;array_ch[i]!='\0';i++){
array_ch[i]=array_ch[i]+32;
printf("%c",array_ch[i]);
}
输出:
abcde`H��A���/��u�$(!
如果我在另一个循环中打印它就可以了:
输入:
char array_ch[]={'A','B','C','D','E'};
int i=0;
for(i;array_ch[i]!='\0';i++){
array_ch[i]=array_ch[i]+32;
}
for(i=0;array_ch[i]!='\0';i++){
printf("%c",array_ch[i]);
}
printf("\n");
输出:
abcde
【问题讨论】:
-
更改为
char array_ch[]={'A','B','C','D','E', '\0'};或char array_ch[]="ABCDE"; -
用 sizeof() 确定数组的大小并将其用于循环会更容易。