C语言如何统计一个单词在输入的一段话中中的位置和次数
时间: 2025-01-23 19:17:28 浏览: 51
在C语言中,可以通过以下步骤统计一个单词在输入的一段话中出现的次数和位置:
1. **读取输入的字符串**:使用`fgets`函数从标准输入读取一段文字。
2. **定义要查找的单词**:定义一个字符串变量来存储要查找的单词。
3. **遍历字符串**:逐个字符遍历输入的字符串,查找与要查找的单词匹配的子串。
4. **记录位置和计数**:每找到一次匹配的子串,记录其位置并增加计数。
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define MAX_LENGTH 1000
int main() {
char text[MAX_LENGTH];
char word[MAX_LENGTH];
int count = 0;
int positions[MAX_LENGTH];
int pos_index = 0;
// 读取输入的文字
printf("请输入一段文字:\n");
fgets(text, MAX_LENGTH, stdin);
// 读取要查找的单词
printf("请输入要查找的单词:\n");
fgets(word, MAX_LENGTH, stdin);
// 去除换行符
text[strcspn(text, "\n")] = '\0';
word[strcspn(word, "\n")] = '\0';
// 获取单词长度
int word_length = strlen(word);
// 遍历字符串查找单词
for (int i = 0; i <= strlen(text) - word_length; i++) {
// 检查从当前位置开始的子串是否与单词匹配
if (strncmp(&text[i], word, word_length) == 0) {
count++;
positions[pos_index++] = i;
i += word_length - 1; // 跳过已匹配的单词
}
}
// 输出结果
printf("单词 \"%s\" 出现的次数:%d\n", word, count);
printf("单词出现的位置:");
for (int i = 0; i < pos_index; i++) {
printf("%d ", positions[i]);
}
printf("\n");
return 0;
}
```
这个程序首先读取用户输入的一段文字和要查找的单词,然后遍历文字查找单词出现的次数和位置,并输出结果。
阅读全文
相关推荐










