Camellia.332 2023-03-03 09:20 采纳率: 92.3%
浏览 20
已结题

统计字符串中的英文字母,数字等,结果不出来但不报错

结果运行不出来


#include<iostream>
using namespace std;
int main(){
char c[10];
int y=0,k=0,s=0,i,q=0;
for(i=0;i<10;i++){
    while((c[i]=getchar())!='\n')
{if((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) y++;
else if(c[i]==' ') k++;
else if(c[i]>='0'&&c[i]<='9') s++;
else q++;
}
}
cout<<"英文字母个数为"<<y<<endl; 
cout<<"空格数个数为"<<k<<endl; 
cout<<"数字个数为"<<s<<endl; 
cout<<"其它字符个数为"<<q<<endl; 
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 元气少女缘结神 2023-03-03 09:34
    关注

    你原来的while((c[i]=getchar())!='\n') 并不是判断从键盘得到的c[i] !=回车,而是判断(c[i]=getchar()) 这个动作或者说完整的表达式,而完整的表达式永远不等于回车!估计是你笔误了
    所以这里要改写

    #include<iostream>
    using namespace std;
    int main(){
        char c[10];
        int y=0,k=0,s=0,i,q=0;
    
        for(i=0;i<10;i++){
            c[i]=getchar();
            if(c[i] !='\n')
            {
                if((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) y++;
                else if(c[i]==' ') k++;
                else if(c[i]>='0'&&c[i]<='9') s++;
                else q++;
            }
            else
                break;
        }
        cout<<"英文字母个数为"<<y<<endl; 
        cout<<"空格数个数为"<<k<<endl; 
        cout<<"数字个数为"<<s<<endl; 
        cout<<"其它字符个数为"<<q<<endl; 
        return 0;
    }
    
    

    或者换成下面这样:

    #include<iostream>
    using namespace std;
    int main(){
        char c[10];
        printf("input now:");
        gets(c);
        
        int y=0,k=0,s=0,i,q=0;
        
        while(*c!='\0')
        {
            if((*c>='a' && *c<='z')||(*c>='A' && *c<='Z')) 
                y++;
            else if(*c==' ') 
                k++;
            else if(*c >='0' && *c<='9') 
                s++;
            else 
                q++;
        }
        
        cout<<"英文字母个数为"<<y<<endl; 
        cout<<"空格数个数为"<<k<<endl; 
        cout<<"数字个数为"<<s<<endl; 
        cout<<"其它字符个数为"<<q<<endl; 
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配
  • ¥15 为什么我的查询总是显示无数据,该怎么修改呢(语言-java)
  • ¥15 IDDPM采样结果异常
  • ¥100 求一个,王者荣耀查询隐藏战绩的教材,爬虫代码
  • ¥60 Cocos creator缓动问题
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变