Я только что увидел, что технически это может работать, единственная ошибка, которую я не смог исправить, это последний символ ASCII, который печатается каждый раз, когда я проверяю его. Я также проверил это без использования имени. переменная, я имею в виду, что простое вычитание 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();
}