1406:单词替换 c语言 函数做法

【题目描述】

输入一个字符串,以回车结束(字符串长度≤200)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
【输入】

第1行是包含多个单词的字符串 s; 第2行是待替换的单词a(长度 ≤ 100); 第3行是a将被替换的单词b(长度 ≤ 100)。 s,a,b最前面和最后面都没有空格。
【输出】

输出只有 1 行,将s中所有单词a替换成b之后的字符串。
【输入样例】

You want someone to help you
You
I
【输出样例】

I want someone to help you
 

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

int main() {
    char s[201], a[101], b[101]; // 定义三个字符数组,分别用于存储输入的字符串、需要替换的子串和替换后的子串
    char result[201] = ""; // 定义一个字符数组,用于存储处理后的结果
    fgets(s, 200, stdin); // 从标准输入读取一行字符串,存储到s中
    fgets(a, 100, stdin); // 从标准输入读取一行字符串,存储到a中
    fgets(b, 100, stdin); // 从标准输入读取一行字符串,存储到b中
    
    // 去掉换行符
    s[strcspn(s, "\n")] = 0;
    a[strcspn(a, "\n")] = 0;
    b[strcspn(b, "\n")] = 0;
    
    char *token = strtok(s, " "); // 使用空格作为分隔符,将字符串s分割成多个子串
    while (token != NULL) { // 遍历所有子串
        if (strcmp(token, a) == 0) { // 如果当前子串与需要替换的子串相同
            strcat(result, b); // 将替换后的子串添加到结果中
        } else {
            strcat(result, token); // 否则,将当前子串添加到结果中
        }
        strcat(result, " "); // 在每个子串之间添加一个空格
        token = strtok(NULL, " "); // 继续处理下一个子串
    }

    // 去掉最后一个空格
    result[strlen(result) - 1] = '\0';
    
    printf("%s\n", result); // 输出处理后的结果

    return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 C 语言中,可以使用以下步骤来统计和替换文件中的单词: 1. 打开文件。使用 fopen 函数打开文件,并获取文件指针。 2. 读取文件内容。使用 fgets 函数读取文件中的一行内容,并将其存储在字符串变量中。 3. 分离单词。使用 strtok 函数将读取的字符串分割成单独的单词。 4. 统计单词。使用循环遍历分离出的所有单词,并使用 if 语句比较单词是否与要统计的单词相同。如果相同,则将计数器加 1。 5. 替换单词。使用 strstr 函数搜索要替换单词,如果找到了,则使用 strncpy 函数将新单词复制到原来的单词位置。 6. 重复步骤 2 到 5,直到读取到文件末尾为止。 7. 关闭文件。使用 fclose 函数关闭文件。 ### 回答2: 使用C语言统计和替换文件中的单词可以通过以下步骤实现: 1. 打开需要操作的文件,可以使用`fopen()`函数打开文件,并指定读取模式。 2. 通过循环读取文件中的内容,可以使用`fscanf()`函数读取单词,直到文件结束。 3. 统计单词数量,可以使用一个变量来保存单词的个数,在每读取一个单词后,将该变量加1。 4. 进行单词替换,可以使用`fseek()`函数将文件指针定位到需要替换的位置,然后使用`fprintf()`函数将新的单词写入到文件中。 5. 关闭文件,使用`fclose()`函数关闭文件,释放资源。 具体的代码示例如下: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *file; char word[100], replace[100], filename[100]; int count = 0; // 打开文件 printf("请输入要操作的文件名:"); scanf("%s", filename); file = fopen(filename, "r+"); if (file == NULL) { printf("文件打开失败!\n"); exit(1); } // 输入需要替换单词和新单词 printf("请输入需要替换单词:"); scanf("%s", word); printf("请输入新的单词:"); scanf("%s", replace); // 统计和替换单词 while (fscanf(file, "%s", word) != EOF) { if (strcmp(word, replace) == 0) { count++; fseek(file, -strlen(replace), SEEK_CUR); fprintf(file, "%s", replace); } } // 输出统计结果 printf("文件中共有%d个单词替换为%s。\n", count, replace); // 关闭文件 fclose(file); return 0; } ``` 以上是一个简单的示例,通过该代码可以实现统计和替换文件中的单词。当然,这只是一个基础的例子,实际中可能需要考虑更复杂的情况,比如单词的大小写、标点符号等。 ### 回答3: C语言可以很方便地实现统计和替换文件中的单词。首先,需要打开指定的文件,并且逐行读取文件内容。利用C语言提供的文件操作函数,我们可以使用fopen()函数来打开文件,并通过fgets()函数逐行读取文件内容。 接下来,我们可以利用字符串处理函数来进行单词的统计和替换。对于统计单词,我们可以首先将每一行的内容按照空格或标点符号进行分割,然后通过遍历分割后的字符串数组,统计含有单词的个数。可以使用strtok()函数进行字符串的分割,然后通过遍历分割后的字符串数组,判断每个字符串是否为单词。 对于替换单词,我们可以使用字符串处理函数strstr()来查找文件中匹配的单词,然后使用strcpy()函数替换。 最后,需要将统计和替换后的文件内容写回到原文件中。我们可以使用fwrite()函数将修改后的文件内容写回到原文件中。 需要注意的是,在进行文件操作时,我们应该注意错误处理,即检查文件的打开是否成功,以及操作是否成功。可以使用feof()函数来判断是否到达文件结尾,如果到达文件结尾跳出循环。 综上所述,通过逐行读取和处理文件内容,可以使用C语言实现文件中单词的统计和替换
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值