Определить процентное содержание строчных и прописных букв к общему числу символов в тексте - C (СИ)
Формулировка задачи:
Дан текст (любой). Нужно определить процентное содержание строчных и прописных букв к общему числу символов в нем.
Помогите, пожалуйста, со строками вообще не дружу.
Решение задачи: «Определить процентное содержание строчных и прописных букв к общему числу символов в тексте»
textual
Листинг программы
#include <string.h> #include <stdio.h> void get_upper_lower_part(const char* str, float* upper, float* lower) { int len = 0; int u = 0; int l = 0; char c; while (c = *str++) { ++len; if (c >= 'A' && c <= 'Z') { ++u; } else if (c >= 'a' && c <= 'z') { ++l; } if (len) { *upper = u*100.0f/len; *lower = l*100.0f/len; } } } int main() { char str[] = "Hello world"; float upper = 0.0f; float lower = 0.0f; get_upper_lower_part(str, &upper, &lower); printf("upper: %f\nlower: %f\n", upper, lower); return 0; }
Объяснение кода листинга программы
- В функции
get_upper_lower_part
определяются переменныеlen
,u
иl
для хранения количества символов, прописных букв и строчных букв соответственно. - Переменная
c
используется для хранения текущего символа в строкеstr
. - В цикле
while
происходит проход по каждому символу в строкеstr
. - Если символ
c
является прописной буквой (большой), то увеличивается значение переменнойu
. - Если символ
c
является строчной буквой (маленькой), то увеличивается значение переменнойl
. - Если длина строки
len
больше 0, то вычисляется процентное содержание прописных и строчных букв и сохраняется в переменныхupper
иlower
соответственно. - В функции
main
определяется тестовая строкаstr
и инициализируются переменныеupper
иlower
для хранения результатов. - Вызывается функция
get_upper_lower_part
с передачей адресов переменныхupper
иlower
в качестве аргументов. - Результат выводится на экран с помощью функции
printf
. - Функция
main
возвращает 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д