Как подсчитать количество измененных символов? - 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.