Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на другую строку Пример Исходная строка: aaaabbbaaa Заменяемая подстрока: bbb Заменяющая подстрока: сссс Результат:аааассссааа Пока получается только вот что
#include <cstdlib>
#include <iostream>
#include <string>#include <stdio>
 
using namespace std;
 
int main(int argc, char *argv[])
{char q[80];
int i;
printf(" Введите строку\n");
scanf("%s",q);
i=0;
while(q[i]!='\0')
{if(q[i]!='a')
q[i]='c';
i++;}
printf(" результат:%s",q);
    system("PAUSE");
    return EXIT_SUCCESS;
}

Решение задачи: «Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main(){
    char *text="bbbbbbaaaaabbbbb", res[BUFSIZ], *sWhat="bbb", *sWith="cccc"
    , *a=text, *b=res;
    for(; *b=*a; ++a, ++b){
        if(!strncmp(a, sWhat, strlen(sWhat))){
            strcpy(b, sWith);
            a+=strlen(sWhat)-1;
            b+=strlen(sWith)-1;
        }
    }
    puts(res);
    return 0;
}

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

  1. Подключение необходимых библиотек для работы со строками
  2. Объявление переменных: — text — исходная строка — res — строка, в которую будет производиться замена — sWhat — подстрока, которую необходимо найти — sWith — подстрока, на которую необходимо заменить найденную подстроку — a — указатель на текущий символ в исходной строке — b — указатель на текущий символ в результирующей строке
  3. Итерация по символам исходной строки
  4. Проверка условия: если текущий символ исходной строки совпадает с первым символом подстроки sWhat (не учитывая регистр), то
  5. Копирование подстроки sWith в результирующую строку
  6. Переход к следующему символу в исходной и результирующей строках
  7. Вывод результирующей строки
  8. Возврат 0, означающий успешное выполнение программы

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


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

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

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