Определить процентное содержание строчных и прописных букв к общему числу символов в тексте - 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, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д