Написать аналог функции UpperCase - C (СИ)
Формулировка задачи:
Задали задачку: написать аналог функции UpperCase (в большие должны превращаться только латинские буквы).
Может кто-нибудь помочь с этим?
Решение задачи: «Написать аналог функции UpperCase»
textual
Листинг программы
#include <stdio.h> int UpperCase(int ch) { return (('a' <= ch) && (ch <= 'z')) ? ch - 32 : ch; } char* Upper(char* text) { char* p = text; for (; *p; ++p) { *p = UpperCase(*p); } return text; } int main() { char text[256]; printf("text: "); fgets(text, sizeof(text), stdin); printf("%s\n", Upper(text)); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки.
- Определение функции
UpperCase
, которая принимает целочисленный аргументch
и возвращает целочисленное значение. Функция проверяет, является ли символch
строчной буквой английского алфавита, и если это так, то вычитает из него 32 для получения заглавной буквы, в противном случае возвращает исходное значение символа. - Определение функции
Upper
, которая принимает указатель на строкуtext
в качестве аргумента и возвращает указатель на эту же строку. В функции используется циклfor
, который проходит по каждому символу строкиtext
. Если символ является строчной буквой, то он преобразуется в заглавную с помощью функцииUpperCase
и записывается обратно в строку. - Определение функции
main
. В функции создается массив символовtext
размером 256, затем считывается строка с помощью функцииfgets
. Далее вызывается функцияUpper
, передавая ей в качестве аргумента считанную строкуtext
. Результат работы функцииUpper
выводится на экран с помощью функцииprintf
. - Входные данные для функции
main
не определены. - Выходные данные для функции
main
— преобразованная в верхний регистр строка, которая выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д