请编写一个C++程序,统计给定长字符串中长度大于等于指定值的单词出现次数,并输出频率最高的单词(若有多个,选长度较小或字典序较小的)
以下是一个用C语言编写的程序,用于统计给定字符串中长度大于等于2的单词出现的次数,并输出出现频率最高的单词。
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 1000
#define MAX_WORD_LEN 100
void toLowercase(char *str) {
for (int i = 0; str[i]; i++) {
str[i] = tolower(str[i]);
}
}
int isWordChar(char c) {
return isalpha(c) || c == '\'';
}
int main() {
char str[MAX_LEN];
printf("请输入一个英文单词串:");
fgets(str, sizeof(str), stdin);
// 统计单词出现次数
int count[MAX_LEN] = {0};
char word[MAX_WORD_LEN];
int maxCount = 0;
char *token = strtok(str, "
");
while (token != NULL) {
toLowercase(token);
if (strlen(token) >= 2) {
count[strlen(token)]++;
if (count[strlen(token)] > maxCount) {
maxCount = count[strlen(token)];
strcpy(word, token);
} else if (count[strlen(token)] == maxCount) {
if (strlen(token) < strlen(word) || (strlen(token) == strlen(word) && strcmp(token, word) < 0)) {
strcpy(word, token);
}
}
}
token = strtok(NULL, "
");
}
// 输出结果
printf("长度大于等于2的单词出现次数:%d
", maxCount);
printf("出现频率最高的单词:%s
", word);
return 0;
}
```
请将以上代码保存为一个以`.c`为后缀的文件,然后使用C编译器进行编译和运行。程序会要求您输入一个英文单词串,然后输出长度大于等于2的单词出现的次数以及出现频率最高的单词。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。