编写一个程序,该程序读取文本并显示一个字母,两个字母等单词的数量。单词由以下字符分隔:“,”,“,”和“。”。输入:一行上的文字,最多不能超过1000个字符。输出:n行整数,指示具有相应长度的单词数,n是文本中最长单词的长度。

我认为我对如何计算所有单词略有了解,但是StrStr对我还是不熟悉,也不知道如何进行。任何帮助将不胜感激,谢谢。

#include <iostream>
using namespace std;

int main()

{
    char a[1000];
    short count[1000];
    int wc = 0;
    int max = 0;
    for (int i = 0; i < 1000; i++)
        count[i] = 0;
    for (int i = 0; i < 1000; i++)
    {
        cin >> a[i];
        if ('\n')
            break;
    }
    for (int i = 0; i < 1000; i++)
    {
        if (a[i] != ' ' && a[i] != ',' && a[i] != ';' && a[i] != '.')
            wc++;
        else
        {
            if (wc != 0)
            {
                count[wc]++;
                if (wc > max)
                    max = wc;
            }
            wc = 0;
        }
    }
    for (int i = 0; i < max; i++)
        cout << count[i] << endl;
    return 0;
}


有人可以帮我修复一下吗?

最佳答案

在这种情况下,您甚至根本不需要读取字符串。您不在乎每个单词的内容,仅在乎其长度。这样,您一次只能读取和处理一个字符。当您读取非定界字符时,请增加当前单词的大小。读取定界符时,请检查当前单词的大小是否为非零。如果是这样,请增加该单词大小的计数。还要检查当前计数是否大于您之前记录的任何计数。如果是这样,请将最大计数设置为当前计数。

从一千个短裤的数组开始,将所有这些字段设置为0来计算不同的字长。

处理完所有输入后,您会记录最长的单词,因此请从数组中打印出从一个到最大的所有项的计数。

关于c++ - 如何显示文本中n个字母的单词数? C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20344660/

10-11 22:10
查看更多