题目是这样的,输入一个字符串,如果其中的单词重复出现三次则提取为关键词,否则不是关键词
1条回答 默认 最新
关注 【以下回答由 GPT 生成】
这里是一个使用C语言从字符串中提取关键词,并检查是否有单词重复出现三次的程序示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX_LENGTH 100 // 定义一个结构体用于存储关键词和重复次数 struct Keyword { char word[MAX_LENGTH]; int count; }; // 检查单词是否已经存在于关键词数组中 int isDuplicate(struct Keyword keywords[], char* word) { for (int i = 0; i < MAX_LENGTH; i++) { if (strcmp(keywords[i].word, word) == 0) { return 1; } } return 0; } // 提取关键词并检查重复次数 void extractKeywords(char* sentence) { struct Keyword keywords[MAX_LENGTH] = {0}; char* word = strtok(sentence, " ,.?!"); // 使用空格和标点符号分割句子 int keywordCount = 0; while (word != NULL) { // 将单词转换为小写 for (int i = 0; word[i]; i++) { word[i] = tolower(word[i]); } // 检查单词是否已经存在于关键词数组中 if (isDuplicate(keywords, word)) { // 如果已存在,增加重复计数 for (int i = 0; i < MAX_LENGTH; i++) { if (strcmp(keywords[i].word, word) == 0) { keywords[i].count++; if (keywords[i].count == 3) { printf("关键词: %s\n", keywords[i].word); } break; } } } else { // 如果不存在,将单词添加到关键词数组中 strcpy(keywords[keywordCount].word, word); keywords[keywordCount].count = 1; keywordCount++; } word = strtok(NULL, " ,.?!"); // 获取下一个单词 } } int main() { char sentence[MAX_LENGTH]; printf("请输入一个句子:"); fgets(sentence, sizeof(sentence), stdin); // 从输入的句子中提取关键词并检查重复次数 extractKeywords(sentence); return 0; }
该程序首先定义了一个结构体
Keyword
,用于存储关键词和重复次数。然后,在extractKeywords
函数中,我们首先定义了一个关键词数组keywords
,并使用空格和标点符号分割输入的句子。然后,我们将每个单词转换为小写,并检查它是否已经存在于关键词数组中。如果存在,我们增加重复计数,如果重复次数达到三次,我们将其作为关键词打印出来。如果不存在,我们将其添加到关键词数组中。在
main
函数中,首先提示用户输入一个句子,然后调用extractKeywords
函数来提取关键词并检查重复次数。请注意,该程序仅演示了一种从字符串中提取关键词并检查重复次数的方法,可能仍然有改进的空间。
【相关推荐】
- 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7687122
- 这篇博客也不错, 你可以看下用C语言编写程序,任意输入一个字符串,将其中的字符按从小到大的顺序重排
- 您还可以看一下 CSDN讲师老师的C语言精髓之编译过程视频教程课程中的 计算机的组成部分,栈内存的特点;画出内存图,引入指针的概念小节, 巩固相关知识点
- 除此之外, 这篇博客: C语言预处理详解中的 当宏参数在宏的定义中出现超过一次的时候,如果参数带有副作用,那么你在使用这个宏的时候就可能出现危险,导致不可预测的后果。副作用就是表达式求值的时候出现的永久性效果 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 根据历年月数据,用Stata预测未来六个月汇率
- ¥15 DevEco studio开发工具 真机联调找不到手机设备
- ¥15 请教前后端分离的问题
- ¥100 冷钱包突然失效,急寻解决方案
- ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
- ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
- ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
- ¥15 vscode开发micropython,import模块出现异常
- ¥20 Excel数据自动录入表单并提交
- ¥30 silcavo仿真,30分钟,只需要代码