当我在同一个循环中转换并打印它时,我得到的结果加上我不知道它来自哪里的垃圾.例:
输入:
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]);
}
Run Code Online (Sandbox Code Playgroud)
输出:
abcde`H??A???/??u?$(!
Run Code Online (Sandbox Code Playgroud)
如果我在另一个循环中打印它可以:
输入:
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");
Run Code Online (Sandbox Code Playgroud)
输出:
abcde
Run Code Online (Sandbox Code Playgroud)
你有未定义的行为.问题是你的循环:它寻找\ 0而没有.因此,运气好的话,你会发现你认为运行正常的问题会更糟糕,因为它看起来好像没问题,但这只是一个等待发生的问题.
所以写:char array_ch [] = {'A','B','C','D','E','\ 0'}; 你应该没事
问候