Во-первых, вы никогда не должны использовать константы, такие как «32», и вместо этого позвольте системе определить, какие значения. IE: b - = char ('');
Во-вторых, посмотрите на функции «islower ()» и «toupper ()», и C автоматически сделает это за вас.
Рассмотрим что-то вроде этого:
включает
main ()
{
int flag = 0;
char b;
while ((b=getchar()) != '\n') {
if (flag && isspace(b))
continue;
putchar(toupper(b));
if (isspace(b)) {
flag = 1;
continue;
}
flag = 0;
}
putchar('\n');
}
Ввод: "a bc def ghijghg 123 a1b2c3"
Вывод: «A BC DEF GHIJGHG 123 A1B2C3»
Примечание. Похоже, текстовое поле исключает пробелы, поскольку в строке ввода много пробелов.
Вы всегда должны знать о своих граничных условиях. Если ввод начнется с кучей пробелов, он все равно будет печатать один пробел. Чтобы исключить все начальные пробелы, инициализируйте флаг = 1. Он также напечатает окончательный пробел, если на входе есть завершающие пробелы. Чтобы устранить их, вам понадобится немного другое решение: одно, где вы печатаете пробел после того, как видите пробел, и другое печатное изображение.