Заменить первую последовательность символов 'т.ч.' на 'так что' и вывести новую строку - 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;
}

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

В этом коде заменяется первая последовательность символов 'т.ч.' на 'так что' и выводится новая строка. Вот список действий, которые выполняются в этом коде:

  1. Указываются необходимые для работы функции и подключаются необходимые заголовочные файлы.
  2. Объявляются переменные:
    • int l, int i - для цикла;
    • char s[] - исходная строка;
    • char p[] - последовательность символов, которую необходимо заменить;
    • char k[] - последовательность символов, на которую необходимо заменить;
    • char *buf - для хранения результата.
  3. Вычисляется длина строки s с помощью функции strlen().
  4. В цикле for происходит сравнение последовательности символов s+i с p. Если они совпадают, то выполняются следующие действия:
    • Выделяется память под новую строку с помощью функции malloc().
    • Копируются символы до первого вхождения последовательности 'т.ч.' с помощью функции strncpy().
    • С помощью функции strcat() к новой строке добавляется последовательность 'так что'.
    • К новой строке добавляются оставшиеся символы исходной строки после последовательности 'т.ч.' с помощью функции strcat().
    • Выводится новая строка с помощью функции printf().
    • Освобождается память с помощью функции free().
    • Возвращается 0.
  5. Если в цикле не было найдено ни одной последовательности 'т.ч.', то выводится сообщение Не найдено с помощью функции printf().
  6. Возвращается 1.

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


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

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

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