我刚刚看到这在技术上可以工作,我无法解决的唯一错误是每次测试时都会打印的最后一个 ASCII 字符,我也在不使用name变量的情况下进行了测试,我的意思是减去 32 ASCII 中的任何小写字母都应该给我他们的大写字母,但我很好奇为什么我会得到一个额外的字符,从我在屏幕上看到的显然是Û。
#include <stdio.h>
main()
{
char name[22];
int i;
fputs("Type your name ",stdout);
fgets(name,22,stdin);
for (i = 0; name[i] != '\0'; i = i + 1)
printf("%c",(name[i])-32); /*This will convert lower case to upper */
/* using as reference the ASCII table*/
fflush(stdin);
getchar();
}