Заменить точками все символы, встречающиеся в строке ровно 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]='.';
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем функцию fun, которая принимает в качестве аргументов строку и число
  3. В функции main задаем исходную строку, вводим число K и вызываем функцию fun
  4. В функции fun объявляем локальные переменные: i, j, dl, kol, mas
  5. Вычисляем длину строки и выделяем память под массив целых чисел
  6. Проходим по каждому символу строки и подсчитываем сколько раз он встречается в строке
  7. Заменяем символы в строке на точки, если количество их вхождений равно K
  8. Выводим измененную строку на экран
  9. Ждем нажатия клавиши
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы