读入一串字符,以“?”结束,分别统计其中每个数字(0 1 2 3 4。。。。。9)的个数,并输出 输入一串字符,以“ ?”结束,分别统计其中每个数字字符0,1...

作者&投稿:殳龙 (若有异议请与网页底部的电邮联系)

思路:

将输入保存到字符串中,然后逐字符判断是否0~9之间的字符并计数,最后输出。

因为字符串是定长的(静态分配),所以在读入字符的时候加上了越界检查。

判断并计数的时候用的是switch结构,写起来会比较麻烦。

代码:

#include <stdio.h>

#define LENGTH 256

int main(void)
{
    char c;
    char s[LENGTH];
    int i=0;
    int l;
    int count[10]={0};

    printf("输入字符串,以\"?\"结束:
");

    while (c != '?')
    {
        if (i<LENGTH-1)
        {
            c = getchar();
            s[i]=c;
            i++;
        }
        else
        {
            break;
        }
    }

    s[i]='\0';
    l=i-1;

    for (i=0;i<l;i++)
    {
        switch (s[i])
        {
            case '0':
                count[0]++;
                break;
            case '1':
                count[1]++;
                break;
            case '2':
                count[2]++;
                break;
            case '3':
                count[3]++;
                break;
            case '4':
                count[4]++;
                break;
            case '5':
                count[5]++;
                break;
            case '6':
                count[6]++;
                break;
            case '7':
                count[7]++;
                break;
            case '8':
                count[8]++;
                break;
            case '9':
                count[9]++;
                break;
        }
    }


    printf("%s
",s);
    for (i=0;i<10;i++)
    {
        printf("%d出现的次数:%d
",i,count[i]);
    }
    return 0;
}

测试结果:

moose@debian-vm:~$ ./main
输入字符串,以"?"结束:
jdoc82ur.re1675884"o"#(?
jdoc82ur.re1675884"o"#(?
0出现的次数:0
1出现的次数:1
2出现的次数:1
3出现的次数:0
4出现的次数:1
5出现的次数:1
6出现的次数:1
7出现的次数:1
8出现的次数:3
9出现的次数:0


定义个9个元素的整数的数组,各元素初始化成0,,,,循环这个字符串,遇到是'0'~'9'的,对前面的数组对应的元素加1

~~~~

输入一串字符,以“ !”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。用c语言写~

#include
int main(int argc, char* argv[])
{
char ch;
int counter[10];
for (int i=0;i<10;i++)
{
counter[i]=0;
}
while((ch = getchar()) != '!')
{
switch (ch)
{
case '0':
counter[0]++;
break;
case '1':
counter[1]++;
break;
case '2':
counter[2]++;
break;
case '3':
counter[3]++;
break;
case '4':
counter[4]++;
break;
case '5':
counter[5]++;
break;
case '6':
counter[6]++;
break;
case '7':
counter[7]++;
break;
case '8':
counter[8]++;
break;
case '9':
counter[9]++;
break;
default:
break;
}
}
for (i=0;i<10;i++)
{
//cout<<"数字"<<i<<"的个数是:"<<counter[i]<<endl;//如果用C++;
printf("数字");
printf("%d",i);
printf("的个数是:%d
",counter[i]);
}
return 0;
}

注释:
VC6.0测试通过;

// 是JAVA还是C还是C++还是VB还是DELPHI
// 因此,我只好写伪代码
// 声明一个数组count[10];用来存储安符0...9出现的次数
// 声明一个char变量ch = null;
// while(ch != '?'){
// 从分键盘读取ch的值.
int num = ch - 0;
count[num]++;
}

C语言 . 输入一行字符,以回车结束,分别统计出其中的英文字母、空格、数...
答:printf("%d%d%d",a,b,c,d);引号逗号少了吧?别的我没看 你看看有问题没 -=== 你的程序我没看懂,是用来干什么的?

输入一个字符串,以问号结束,输出小写字母的个数
答:easy!include <stdio.h> int main(){ int words=0;char ch;while((ch=getchar())!='?'){ if(ch>='a'&&ch<='z') words++;} printf("小写字母数是:%d\n",words);return 0;}

输入一行字符,分别统计出其中的英文字母、空格、数字、和其他字符的个...
答:一、问题分析:输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。要统计各个类的个数,就要逐个判断是哪个分类的。由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。二、算法设计:1、读入字符,直到遇到换行结束。2、对于每个字符,判断是...

由用户从键盘输入一串字符(以回车键结束),统计其中数字、大、小写字母...
答:include<stdio.h> int main(){ char szTest[100];int i=0;int count[5]={0};//count[0]数字、count[1]大写字母、count[2]小写字母、count[3]空格、count[4]其它字符,初始化为0 scanf("%s",&szTest);while(szTest[i]!='\0'){ if(szTest[i]>='0' && szTest[i]<='9')coun...

c语言设计:从键盘上输入若干字符(以回车结束),分别统计其中字符(区分...
答:include <stdio.h>int main(){ int c; int el=0,EL=0,nu=0,other=0; c=getchar();//输入字符 while(c!='\n') { if(c>='a' && c<='z') el++; else if(c>='A' && c<='Z') EL++; else if(c>='0'&&c<='9') nu++; ...

输入一串字符,以“ !”结束,分别统计其中每个数字字符0,1,2,….9...
答:include <stdio.h> int main(int argc, char* argv[]){ char ch;int counter[10];for (int i=0;i<10;i++){ counter[i]=0;} while((ch = getchar()) != '!'){ switch (ch){ case '0':counter[0]++;break;case '1':counter[1]++;break;case '2':counter[2]++;break;...

输入一串字符,统计输出字母,数字和其他字符的个数,以*号作为输入结束...
答:while((ch=getchar())!='*'); //最后‘;’干吗用?去掉。但这样通常不行,建议改为:char buf[200];printf("输入一串字符以“*”结束");scanf("%[a-zA-Z0-9 *]",buf);for(int i=0;i<strlen(buf)&&buf[i]!='*';i++){ ch=buf[i];if((ch>='a'&&ch<='z')||(ch>=...

编程实现:输入一行字符(以回车键结束),统计并输入其中英文字母,数字...
答:1、首先在软件中,建立三个变量,用来记录用户输入的字符类型,具体代码如下。2、用input 代码和用户进行交互,提示用户输入内容。a = input("请输入您的字符:")。3、写一个for 循环 为我们判断用户输入的字符类型做准备,具体代码如下。4、利用if 条件语句 和 isdigit() 代码判断字符是否为数字,...

c语言输入一串字符(小于50),以回车为结束符,删除两端空格后输出,
答:include<stdio.h> int main(){char s[200],*p,*q;gets(s);printf("You enter \"%s\"\n",s);for(p=q=s;*p==' ';p++);for(q=s;*p;)*q++=*p++;for(p--;*p==' ';p--)*p='\0';printf("Now:\"%s\"\n",s);return 0;} ...

c语言中,输入一串字符,然后分别存放输出数字,字母,其他,怎么用函数表 ...
答:/*输入一串字符,然后分别存放输出数字,字母,其他*/#include<stdio.h>#define N 80int main(void){void myString(char *str,char *ch,char *num,char *other);char str[N],ch[N],num[N],other[N];printf("输入一个字符串: ");gets(str);myString(str,ch,num,other);printf("字母:...