Заменить первую последовательность символов 'т.ч.' на 'так что' и вывести новую строку - C (СИ)
Формулировка задачи:
Пожалуйста, помогите составить программу в Borland C 3.1:
Дана символьная строка. Заменить первую последовательность символов 'т.ч.' на 'так что' и вывести новую строку. Если искомой последовательности в строке нет, то вывести соответствующее сообщение.
Решение задачи: «Заменить первую последовательность символов 'т.ч.' на 'так что' и вывести новую строку»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <alloc.h> int main() { int l, i; char s[] = "Должно быть еще умение, т.ч. желания недостаточно."; // char s[] = "Здесь нет ничего невозможного."; char p[] = "т.ч."; char k[] = "так что"; char *buf; l=strlen(s); for(i=0; i<l-4; i++) { if(!strncmp(s+i, p, 4)) { buf=malloc(strlen(s)+strlen(k)-strlen(p)+1); strncpy(buf, s, i); strcat(buf, k); strcat(buf, s+i+strlen(p)); printf("%s\n", buf); free(buf); return 0; } } printf("Не найдено\n"); return 1; }
Объяснение кода листинга программы
В этом коде заменяется первая последовательность символов 'т.ч.' на 'так что' и выводится новая строка. Вот список действий, которые выполняются в этом коде:
- Указываются необходимые для работы функции и подключаются необходимые заголовочные файлы.
- Объявляются переменные:
int l
,int i
- для цикла;char s[]
- исходная строка;char p[]
- последовательность символов, которую необходимо заменить;char k[]
- последовательность символов, на которую необходимо заменить;char *buf
- для хранения результата.
- Вычисляется длина строки
s
с помощью функцииstrlen()
. - В цикле
for
происходит сравнение последовательности символовs+i
сp
. Если они совпадают, то выполняются следующие действия:- Выделяется память под новую строку с помощью функции
malloc()
. - Копируются символы до первого вхождения последовательности 'т.ч.' с помощью функции
strncpy()
. - С помощью функции
strcat()
к новой строке добавляется последовательность 'так что'. - К новой строке добавляются оставшиеся символы исходной строки после последовательности 'т.ч.' с помощью функции
strcat()
. - Выводится новая строка с помощью функции
printf()
. - Освобождается память с помощью функции
free()
. - Возвращается 0.
- Выделяется память под новую строку с помощью функции
- Если в цикле не было найдено ни одной последовательности 'т.ч.', то выводится сообщение
Не найдено
с помощью функцииprintf()
. - Возвращается 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д