【发布时间】:2023-03-10 19:31:01
【问题描述】:
我有一个非常简单的代码将大写转换为小写:
#include <stdio.h>
int main()
{
char c;
int i=0;
for (i=0;i<10;i++){
c=getchar();
c=c-'A'+'a';
printf("%c\n",c );
}
return 0;
}
但是运行这个简单的代码总是在输出时我有一个额外的* 字符。它在* 后面打印字符。看看:
D
d
*
D
d
*
E
e
*
这是从哪里来的?
【问题讨论】:
-
运行调试器,在每次迭代中检查
c的值..... -
仅供参考,
getchar()返回int,应该相应地使用。 -
您对此有何意见?