Создать новое предложение из вырезанных слов двух старых - C (СИ)

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

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

Всем доброго для, прошу помочь в одной задачке на си, раньше си не учил - вот сейчас понадобился. Собственно задача звучит так: Ввести два строки символов. С каждого из них вырезать нужные слова и создать новое предложение из вырезанных слов. Заранее благодарен!
Актуально, добрые люди помогайте)

Решение задачи: «Создать новое предложение из вырезанных слов двух старых»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
//-----------------------------------------------------------------------------
char* getstr(char* str, size_t len) {
    char* p;
    if ((p = fgets(str, len, stdin)) != NULL) {
        for (; *p && *p != '\n'; ++p) { ; }
        if (*p == '\n') {
            *p = 0;
        }
    }
    return str;
}
//-----------------------------------------------------------------------------
char* cutword(char* str, const char* word) {
    char* p = str;
    size_t len = strlen(word);
 
    while ((p = strstr(p, word))) {
        if (((p == str) || (!isalpha(*(p - 1))))
            && (!isalpha(*(p + len)))) {
            memmove(p, p + len, strlen(p + len) + 1);
        }
        else {
            p += len;
        }
    }
 
    return str;
}
//-----------------------------------------------------------------------------
 
int main() {
    char str1[128], str2[128], str3[512] = { 0 };
    char word[32];
 
    printf("first:  ");
    getstr(str1, sizeof(str1));
 
    printf("second: ");
    getstr(str2, sizeof(str2));
 
    while (1) {
        printf("excluded: ");
        if (*getstr(word, sizeof(word)) == 0) {
            break;
        }
 
        strcat(str3, word);
        strcat(str3, " ");
 
        cutword(str1, word);
        cutword(str2, word);
 
        printf("\n-------\n");
        printf("first:  %s\n", str1);
        printf("second: %s\n", str2);
        printf("last:   %s\n", str3);
    }
 
    return 0;
}

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

  1. Вначале, программа запрашивает у пользователя ввод двух строк.
  2. Затем, программа запрашивает у пользователя ввод слова, которое нужно исключить из обеих строк.
  3. После этого, программа добавляет это слово в конец третьей строки и разделяет все три строки пробелом.
  4. Затем, программа использует функцию 'cutword' для удаления указанного слова из первых двух строк.
  5. Этот процесс повторяется до тех пор, пока пользователь не введет пустую строку.
  6. После этого, программа выводит исходные строки, а также итоговую строку с исключенными словами.
  7. В конце программы, все три строки очищаются, и программа завершается.

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


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

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

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