回 帖 发 新 帖 刷新版面

主题:高手救命啊~~ 这个题~~

从键盘输入n行字符(如:n个英文句子),每行不超过80个字符,以回车结束每一行。统计出各行所具有的“单词”个数(“单词”被定义为以字母开头的连续字母串)。

我只知道 怎么做已知行的 比如 三行的 这样~~
char a[80];
    int j,i=0;
    static int n[4];

    cout<<"输入3行字符(如:3个英文句子),每行不超过80个字符,以回车结束每一行"<<endl;
    cin.getline(a,80);
    for(j=0;j<=2;j++){        
        cin.getline(a,80);
        if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z'))
            n[j]++;
        while(a[i]!='\0'){
            i++;
            if(a[i]==' ')
                if((a[i+1]>='a'&&a[i+1]<='z')||(a[i+1]>='A'&&a[i+1]<='Z'))
                    n[j]++;
        }
        i=0;
    }
        for(j=0;j<=2;j++)        
        cout<<"第"<<j+1<<"行有单词"<<n[j]<<"个。"<<endl;


但是  数组是不能不给size的吧~~ 怎么办呢~

回复列表 (共3个回复)

沙发

做个‘链表’动态分配数组。对于不能确定数量的东东,需要动态分配内存。不能一下定死了。

板凳

用动态数组吧,具体做法我也不是很清楚。
好像是
char a[];
然后在要用到它的时候再指定大小

3 楼

恩~我会了~原来是很简单的做法……不用这么复杂的……
还是谢谢阿~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册