aiaiask.com©

开花即结果 提问即答案

请编写一个C++程序,统计给定长字符串中长度大于等于指定值的单词出现次数,并输出频率最高的单词(若有多个,选长度较小或字典序较小的)
原始问题:

请编写一个C++程序,统计给定长字符串中长度大于等于指定值的单词出现次数,并输出频率最高的单词(若有多个,选长度较小或字典序较小的)

以下是一个用C语言编写的程序,用于统计给定字符串中长度大于等于2的单词出现的次数,并输出出现频率最高的单词。

#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的单词出现的次数以及出现频率最高的单词。

请编写一个C++程序,统计给定长字符串中长度大于等于指定值的单词出现次数,并输出频率最高的单词(若有多个,选长度较小或字典序较小的)
https://www.aiaiask.com/ask/45521.html
AI / 模型DeepSeek
时间 / DATEAugust 29, 2023, 7:56 PM
语言zh-CN
IP / 区域河北 沧州