在C语言中,可以使用字符串处理函数和循环来找出一个单词在一个句子中出现的次数。以下是一个示例代码:
#include <stdio.h>
#include <string.h>
int countWordOccurrences(char sentence[], char word[]) {
int count = 0;
char *token;
// 使用strtok函数将句子分割成单词
token = strtok(sentence, " ");
// 遍历每个单词并比较是否与目标单词相同
while (token != NULL) {
if (strcmp(token, word) == 0) {
count++;
}
token = strtok(NULL, " ");
}
return count;
}
int main() {
char sentence[100];
char word[20];
printf("请输入一个句子:");
fgets(sentence, sizeof(sentence), stdin);
printf("请输入要查找的单词:");
fgets(word, sizeof(word), stdin);
// 去除输入字符串中的换行符
sentence[strcspn(sentence, "\n")] = '\0';
word[strcspn(word, "\n")] = '\0';
int occurrences = countWordOccurrences(sentence, word);
printf("单词 \"%s\" 在句子中出现的次数为:%d\n", word, occurrences);
return 0;
}
这段代码首先定义了一个countWordOccurrences
函数,该函数接受一个句子和一个目标单词作为参数,并返回目标单词在句子中出现的次数。函数内部使用strtok
函数将句子分割成单词,并通过循环遍历每个单词,使用strcmp
函数比较是否与目标单词相同,如果相同则计数器加一。
在main
函数中,首先通过fgets
函数获取用户输入的句子和目标单词。然后使用strcspn
函数去除输入字符串中的换行符。接下来调用countWordOccurrences
函数计算目标单词在句子中出现的次数,并将结果打印输出。
请注意,这只是一个简单的示例代码,可能无法处理一些特殊情况,例如标点符号、大小写敏感等。在实际应用中,可能需要根据具体需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云