c++ 输入一行字符,分别统计出其中

供稿:hz-xin.com     日期:2025-01-13
c++输入一行字符,分别统计出其中英文字母,数字和其他字符的个数

C语言经典例子之统计英文、字母、空格及数字个数

C语言经典例子之统计英文、字母、空格及数字个数

用循环语句即可依次统计。

1、while语句:

#include<stdio.h>
int main(void)
{
    //输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
    char ch;
    int char_num=0,kongge_num=0,int_num=0,other_num=0;
    while((ch=getchar())!='
')//回车键结束输入,并且回车符不计入
    {
        if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
        {
            char_num++;
        }
        else if(ch==' ')
        {
            kongge_num++;
        }
        else if(ch>='0'&&ch<='9')
        {
            int_num++;
        }
        else
        {
            other_num++;
        }
    }
    printf("字母= %d,空格= %d,数字= %d,其它= %d
",char_num,kongge_num,int_num,other_num);
    return 0;
}



2 ,do while语句:

#include<stdio.h>
int main(void)
{
    //输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
    char ch;
    int char_num=0,kongge_num=0,int_num=0,other_num=0;
   do
    {
        if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
        {
            char_num++;
        }
        else if(ch==' ')
        {
            kongge_num++;
        }
        else if(ch>='0'&&ch<='9')
        {
            int_num++;
        }
        else
        {
            other_num++;
        }
    } while((ch=getchar())!='
')//回车键结束输入,并且回车符不计入
    printf("字母= %d,空格= %d,数字= %d,其它= %d
",char_num,kongge_num,int_num,other_num);
    return 0;
}


while((c=getchar())!='\n')可以按照优先级顺序来理解
c=getchar()把输入的字符信息存在c里,然后判断输入的值是否是回车字符,就是'\n';如果不是,循环条件为真,进入循环进行统计,如果是回车,循环条件为假,循环结束,打印统计信息。
如果换成c=getchar(),只能输入一个字符,因为这个函数的功能就是录入一个字符,没有循环结构,自然不能逐个判断统计字符。

如果换成while(c=getchar()),你的while循环根本无法结束呀,怎么会统计字符串的第一个字符呢?

while((c=getchar())!='\n')的执行是这样的:首先,将getchar()得到的字符赋给c,然后再比较字符c与回车符,如果不是回车符,则继续获取下一个字符,若是则退出while循环。

应该和c=getchar()的返回值有关,只要读取字符成功,就执行完毕,(c=getchar())!='\n')是指读到‘'\n',也就是换行才会执行完毕。

用循环语句即可依次统计。
1、while语句:
#include
int main(void)
{
//输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
char ch;
int char_num=0,kongge_num=0,int_num=0,other_num=0;
while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入
{
if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
{
char_num++;
}
else if(ch==' ')
{
kongge_num++;
}
else if(ch>='0'&&ch<='9')
{
int_num++;
}
else
{
other_num++;
}
}
printf("字母= %d,空格= %d,数字= %d,其它= %d\n",char_num,kongge_num,int_num,other_num);
return 0;
}
2
,do
while语句:
#include
int main(void)
{
//输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
char ch;
int char_num=0,kongge_num=0,int_num=0,other_num=0;
do
{
if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
{
char_num++;
}
else if(ch==' ')
{
kongge_num++;
}
else if(ch>='0'&&ch<='9')
{
int_num++;
}
else
{
other_num++;
}
} while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入
printf("字母= %d,空格= %d,数字= %d,其它= %d\n",char_num,kongge_num,int_num,other_num);
return 0;
}

c++输入一行字符串,要求分别统计出其中英文大写字母、小写字母、数字...
ben++;} else if(sen[i]>='a'&&sen[i]<='z'){ men++;} else if(sen[i]>=''){ spa++;} else if(sen[i]>='0'&&sen[i]<='9'){ num++;} else { oth++;} } printf("大写字母有%d个\\n小写字母有%d个\\n空格有%d个\\n数字有%d个\\n其他字符有%d个\\n",ben,men,...

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数...
【答案】:程序分析:利用while语句,条件为输入的字符不为’\\n’。程序源代码如下。include"stdio.h"main(){ char c;int letters=0,space=0,digit=0,others=0;printf("please input some characters\\n");while((c=getchar())!='\\n'){ if(c>='a'&&c<='Z'||c>='A'&&c<=...

C++输入一行字符,统计其中单词的个数.各单词之间用空格分隔,空格数可 ...
利用C++的string类对象解决。可以先给对象赋一个空格字符串,把从键盘接收的字符追加其后,以方便统一查找。举例如下:include "stdafx.h"\/\/If the vc++6.0, with this line.\/\/#include <string>#include <iostream>using namespace std;int main(int argc,char *argv[]){string s(" ");\/\/...

C语言题:输入一行字符,分别统计出其中的英文字母、空格、数字和其它字...
include<stdio.h> include<conio.h> main(){ int zimu=0,dight=0,space=0,other=0,i=0;char c;printf("Input string:");while((c=getchar())!='\\n') yj { if('A'<=c&&c<='Z'||'a'<=c&&c<='z')++zimu;else if ((c<='9')&&(c>='0'))++dight;else if (c=='...

c++输入一行字符,输出其中的所有数字字符。如:输入"hsj12sjs34s5"输出...
如下 代码#includeint main(void){char str[80],*s;printf("输入一个字符串:\\n ");gets(str);s=str;while(*s){if(*s>='0'&&*s<='9')putchar(*s);s++;}printf("\\n");return 0;}

输入一行字符,分别统计出其中的英文字母,空格,数字和其他数值的个数_百...
struct result { int character;int spaces;int decimal;int other;};void check(char* str,struct result& ret){ if(str == NULL){ ret.character = ret.decimal = ret.spaces = ret.other =0;return;} cout<<str<<endl;while((*str) != '\\0'){ if((*str) == ' ')++ret....

输入一行字符,分别统计其中10个数字字符,0到9出现的次数。永c语言怎么...
include"stdio.h"include "string.h"int main(){ int a[10]={0};char ca[100];gets(ca);int i;for (i=0;ca[i]!='\\0';++i){ if(ca[i]>='0'&&ca[i]<='9')a[ca[i] - '0']++;} printf("数字0到9分别出现的次数如下\\n");for (i=0;i<10;i++){ printf("%d:%d...

C++ 输入一行字符串,统计其中字符'a'的个数。 输出要求: 只有一个整 ...
include <iostream>#include <string>using namespace std;int main(){ string str; cin >> str; size_t pos; int count = 0; while (string::npos != (pos = str.find('a', pos))) { count++; pos++; } cout << count << endl; return 0;}...

C语言题目输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的...
修改后:include <stdio.h> int main(){ int letter=0,space=0,number=0,others=0;char nextchar;printf("Input your string\\n");for(;nextchar!='\\n';){ scanf("%c",&nextchar);if('a'<=nextchar&&nextchar<='z'||'A'<=nextchar&&nextchar<='Z')letter++;else if(nextchar==' '...

C++ 数组 输入一行字符串(长度小于80个字符,只有字母和数字),统计其中...
scanf("%s", str);\/\/连续输入字符到字符数组 while (str[i] != '\\0'){ if ((str[i] >= '0') && (str[i] <= '9'))\/\/判断是否是数字 { Numb_count++;} else if ((str[i] >= 'a') && (str[i] <= 'z'))\/\/判断是否是小写字母 { abc_count++;} else if ((str[...