Замена одного слова другим в строке - C (СИ)
Формулировка задачи:
Здравствуйте, помогите плз в решении задачи (срочно!!)
Суть задачи состоит в том, что мы должны ввести с клавиатуры строку, потом ввести слово, которое мы хотим поменять в этой строке на другое и ввести слово, на которое собственно будем менять наше слово, результат должен выглядеть примерно так:
Ведите строку:
Я люблю мороженое
Введите слово которое будем менять:
мороженое
Введите слово на которое будем менять:
пиво
результат: Я люблю пиво
Вот что-то вроди этого, заранее спасибо!
Решение задачи: «Замена одного слова другим в строке»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main()
{
char a[60], b[256], *pa = a, *pb = b, ow[10], nw[10];
int i;
const size_t owSize = strlen(ow), nwSize = strlen(nw);
printf ("Vvedite stroku\n");
gets (a);
printf ("Vvedite slovo, kotoroje budem menyat'\n");
gets (ow);
printf ("Vvedite slovo na kotoroje budem menyat'\n");
gets (nw);
for(; *pb = *pa; ++pa, ++pb)
{
if(!strncmp(pa, ow, owSize))
{
strcpy(pb, nw);
pa += owSize - 1;
pb += nwSize - 1;
}
}
puts(b);
getchar();
getchar ();
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками
- Объявление переменных: массив для хранения исходной строки, массив для хранения строки-заменителя, указатель на первый символ исходной строки, указатель на первый символ строки-заменителя, указатель на первый символ исходной строки после последнего вхождения искомого слова, указатель на первый символ строки-заменителя после последнего вхождения искомого слова
- Получение исходной строки от пользователя с помощью функции gets
- Получение от пользователя слова, которое необходимо заменить, с помощью функции gets
- Получение от пользователя слова-заменителя с помощью функции gets
- Вычисление размеров строк с помощью функции strlen
- Инициализация пустых строк для хранения результатов замены
- Проверка нахождения искомого слова в исходной строке с помощью функции strncmp
- Если искомый текст найден, то происходит замена подстроки исходной строки на строку-заменитель с помощью функции strcpy
- Перемещение указателей на следующие символы исходной строки и строки-заменителя
- Повторение шагов 8-10 для всех вхождений искомого слова в исходной строке
- Вывод результата на экран с помощью функции puts
- Ожидание нажатия клавиши для завершения работы программы
- Возврат 0, что означает успешный конец работы программы