Как, используя toupper(), перевести текст в заглавный? - C (СИ)
Формулировка задачи:
Хорошо, как используя toupper() перевести текст в заглавный?
Решение задачи: «Как, используя toupper(), перевести текст в заглавный?»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
char * str_toupper(char * s) {
if ( *s ) {
*s = toupper(*s);
str_toupper(s + 1);
}
return s;
}
int main(void) {
char buf[BUFSIZ];
while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
printf("UPPERCASE: %s", str_toupper(buf));
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
и . - Определяем функцию str_toupper(), которая принимает указатель на начало строки и переворачивает строку в верхний регистр.
- Если первый символ строки не равен нулю, то мы применяем функцию toupper() к этому символу и записываем его обратно в строку.
- Затем рекурсивно вызываем функцию str_toupper() для следующего симвома в строке.
- Если первый символ строки равен нулю, то мы завершаем рекурсию и возвращаем указатель на начало строки.
- В функции main() мы считываем строку с помощью fgets() в буфер buf, размер которого определен как BUFSIZ.
- Мы продолжаем считывать строки до тех пор, пока пользователь не введет пустую строку или не завершит ввод.
- Для каждой введенной строки мы вызываем функцию str_toupper(), передавая ей указатель на начало строки.
- Результат функции str_toupper() выводится на экран с помощью функции printf().
- В конце функции main() возвращается 0, что означает успешный конец работы программы.