📌  相关文章
📜  用另一个给定单词替换文本中的单词的C程序(1)

📅  最后修改于: 2023-12-03 15:11:18.510000             🧑  作者: Mango

用另一个给定单词替换文本中的单词的C程序

有时候我们需要将一个句子或段落中的某些单词替换成另一个单词,这时候就可以借助C语言的字符串操作函数来实现。下面将介绍如何用C语言编写一个简单的程序来完成这个任务。

思路

程序的思路比较简单明了,就是读取输入的文本,逐个单词进行比较,如果与目标单词相同,则用新单词替换原有单词,最后输出替换后的文本。

步骤
  1. 用fgets函数读取输入的文本,存储在一个字符串变量中。例如:
char str[100];
fgets(str, 100, stdin);
  1. 定义两个字符串变量,一个用来存储原有单词,一个用来存储新单词。例如:
char old_word[20] = "old";
char new_word[20] = "new";
  1. 定义一个循环,逐个单词进行比较。当遇到单词与原有单词相同时,用新单词替换原有单词,例如:
int len = strlen(str);

for (int i = 0; i < len; i++) {
    char word[20];
    int j = 0;

    while (str[i] != ' ' && str[i] != '\n' && str[i] != '\0') {
        word[j++] = str[i++];
    }

    word[j] = '\0';

    if (strcmp(word, old_word) == 0) {
        strcat(new_str, new_word);
        strcat(new_str, " ");
    }
    else {
        strcat(new_str, word);
        strcat(new_str, " ");
    }
}
  1. 输出替换后的文本。例如:
printf("替换前:%s\n", str);
printf("替换后:%s\n", new_str);
示例代码

以下是完整的示例代码:

#include <stdio.h>
#include <string.h>

int main() {
    char str[100];
    fgets(str, 100, stdin);

    char old_word[20] = "old";
    char new_word[20] = "new";

    int len = strlen(str);
    char new_str[100] = "";

    for (int i = 0; i < len; i++) {
        char word[20];
        int j = 0;

        while (str[i] != ' ' && str[i] != '\n' && str[i] != '\0') {
            word[j++] = str[i++];
        }

        word[j] = '\0';

        if (strcmp(word, old_word) == 0) {
            strcat(new_str, new_word);
            strcat(new_str, " ");
        }
        else {
            strcat(new_str, word);
            strcat(new_str, " ");
        }
    }

    printf("替换前:%s\n", str);
    printf("替换后:%s\n", new_str);

    return 0;
}
总结

这是一个非常简单的程序,但是通过这个程序我们可以初步了解C语言的字符串操作函数。在实际的应用中,我们可以根据需要对程序进行优化和定制,以适应更多的需求。