Заменить точками все символы, встречающиеся в строке ровно K раз - C (СИ)
Формулировка задачи:
Дана строка. Заменить точками все символы, встречающиеся в строке ровно K раз.
Значение K вводит пользователь.
Решение задачи: «Заменить точками все символы, встречающиеся в строке ровно K раз»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <string.h> #include <malloc.h> void fun(char*, int); int main(){ char str[]="fgijdsijfsicsaoaxaxaqwvcmyyiukiuk"; int k, m; printf("Input K: "); scanf("%d", &k); printf("%s\n\n", str); fun(str, k); printf("%s", str); getch(); return 0; } void fun(char* str, int k){ int i, j, dl, kol, *mas; dl=strlen(str); mas=(int*)malloc(dl*sizeof(int)); for(i=0; i<dl; i++){ kol=0; for(j=0; j<dl; j++) if(str[i]==str[j]){ kol++; mas[i]=kol; }} for(i=0; i<dl; i++) if(mas[i]==k) str[i]='.'; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию
fun
, которая принимает в качестве аргументов строку и число - В функции
main
задаем исходную строку, вводим число K и вызываем функциюfun
- В функции
fun
объявляем локальные переменные: i, j, dl, kol, mas - Вычисляем длину строки и выделяем память под массив целых чисел
- Проходим по каждому символу строки и подсчитываем сколько раз он встречается в строке
- Заменяем символы в строке на точки, если количество их вхождений равно K
- Выводим измененную строку на экран
- Ждем нажатия клавиши
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д