Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để thay thế một từ trong văn bản bằng một từ đã cho khác

Trong chương trình này, chúng tôi đã đưa ra ba chuỗi txt, oldword, newword. Nhiệm vụ của chúng tôi là tạo một chương trình C để thay thế một từ trong văn bản bằng một từ đã cho khác.

Chương trình sẽ tìm kiếm tất cả các lần xuất hiện của từ cũ trong văn bản và thay thế nó bằng từ mới .

Hãy lấy một ví dụ để hiểu vấn đề -

Đầu vào

text = “I am learning programming”
oldword = “learning”
newword = “practicing”

Đầu ra

“I am practicing programming”

Để giải quyết vấn đề này, trước tiên chúng ta sẽ tìm số lần xuất hiện của từ cũ trong chuỗi và sau đó tạo một chuỗi mới sẽ lưu trữ văn bản với các từ được thay thế.

Chương trình C để thay thế một từ trong văn bản bằng một từ đã cho khác

// Chương trình C để thay thế một từ trong văn bản bằng một từ đã cho khác

Ví dụ

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void replaceWordInText(const char *text, const char *oldWord, const char *newWord) {
   int i = 0, cnt = 0;
   int len1 = strlen(newWord);
   int len2 = strlen(oldWord);
   for (i = 0; text[i] != '\0'; i++) {
      if (strstr(&text[i], oldWord) == &text[i]) {
         cnt++;
         i += len2 - 1;
      }
   }
   char *newString = (char *)malloc(i + cnt * (len1 - len2) + 1);
   i = 0;
   while (*text) {
      if (strstr(text, oldWord) == text) {
         strcpy(&newString[i], newWord);
         i += len1;
         text += len2;
      }
      else
      newString[i++] = *text++;
   }
   printf("New String: %s\n", newString);
}
int main() {
   char str[] = "I am learning programming";
   char c[] = "learning";
   char d[] = "practicing";
   char *result = NULL;
   printf("Original string: %s\n", str);
   replaceWordInText(str, c, d);
   return 0;
}

Đầu ra

Original string: I am learning programming
New String: I am practicing programming