在线编译器 C

#include <stdio.h> void to_upper(char *str) { while (*str) { if (*str >= 'a' && *str <= 'z') { *str &= ~0x20; // Сбрасываем 6-й бит, чтобы перевести букву в верхний регистр } str++; // Переходим к следующему символу } } int main (void) { char character; do { character = getchar(); // считать введённый со стандартного потока ввода символ } while (character != '.'); // пока введенный символ не точка to_upper(&character); putchar (character); return 0; }
1) Этот код считывает символы с клавиатуры в цикле до тех пор, пока не будет введена точка. После выхода из цикла он пытается преобразовать последний считанный символ (который является точкой) в верхний регистр с помощью функции `to_upper` и выводит его.

2) Обрати внимание, что функция `to_upper` предназначена для работы со строками (массивами символов), а не с одиночным символом. Также подумай, что происходит с адресом переменной `character` при передаче в функцию.