Как подсчитать количество измененных символов? - C (СИ)
Формулировка задачи:
Условие задачи такое: заменить все большие буквы на маленькие и подсчитать количество замен. Каким образом мне подсчитать сколько букв я заменил?
#include <stdio.h> #include <ctype.h> #include <string.h> int main() { int i = 0; int ptr; char str[] = "Testovaya Stroka\n"; char c; while (str[i]) { c = str[i]; putchar(tolower(c)); i++; } getchar(); return 0; }
Решение задачи: «Как подсчитать количество измененных символов?»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> int to_lower(char* s){ int n = 0; while(*s){ if(isupper(*s)){ *s = tolower(*s); ++n; } ++s; } return n; } int main(void){ int n; char s[] = "DOG, FOX, CAT, BAT."; puts(s); n = to_lower(s); puts(s); printf("count rep: %d\n", n); getchar(); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
<stdio.h>
и<ctype.h>
. - Определение функции
to_lower
, которая принимает указатель на строку и изменяет все символы строки на нижний регистр. - Внутри функции
to_lower
инициализируется переменнаяn
для подсчета количества измененных символов. - Запускается цикл
while
, который проходит по каждому символу строки. - Внутри цикла проверяется, является ли текущий символ заглавной буквой.
- Если символ является заглавной буквой, он приводится к нижнему регистру, а переменная
n
увеличивается на 1. - После прохождения цикла возвращается значение переменной
n
. - В функции
main
инициализируется строкаs[]
с заданным значением. - Выводится исходное значение строки
s[]
. - Значение строки
s[]
передается в функциюto_lower
, которая изменяет все символы строки на нижний регистр. - Выводится измененное значение строки
s[]
. - Выводится количество измененных символов с помощью функции
printf
. - Программа ожидает ввода с клавиатуры с помощью
getchar()
. - Программа завершается с возвратом значения 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д