回 帖 发 新 帖 刷新版面

主题:哪位高手指点一下

:统计字符和数字
输入描述:
输入包括多组样例,输入一个字符串,统计字符串中‘a’到‘z’中字母字符出现的次数,以及0到9中各个数字字符出现的次数。
输入-1时终止输入。
输出描述:
分别打印字母字符、数字字符出现的次数。
输入样例:
 A1a2b 1b0!@#%^&
输出:
Letters:4
Digits: 4

回复列表 (共5个回复)

沙发

#include <stdio.h>
int letter=0;
int digit=0;
void fs()
{
    
    char c=getchar();
    if(c!='\n')
        fs();
    if(c>='a' && c<='z')
    {
        letter++;
    }
    else
    {
        if(c>='0'&&c<='9')
        {
            digit++;
        }
    }
}
int main()
{
    fs();
    printf("Letters:%d\nDigits:%d\n",letter,digit);
    return 0;
}

板凳


这个程序好像不对吧?和题目不符合呀.

3 楼

#include<stdio.h>
int main()
{
    char str[100];
    int i,k,m;
    while(gets(str)!=NULL)
    {
        m=0;k=0;
        for(i=0;str[i]!='\0';i++)
        {
            if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
                k++;
            if(str[i]>='0'&&str[i]<='9')
                m++;
        }
        printf("Letters:%d\n",k);
        printf("Digits:%d\n",m);
    }
    return 0;
}
大致的就是这样了,细小的你自己看看。

4 楼

#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str;
    int i,k,m,n;
    getline(cin,str);
    n=str.length();
    m=0;k=0;
    for(i=0;i<n;i++)
    {
        if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
            k++;
        if(str[i]>='0'&&str[i]<='9')
            m++;
    }
    cout<<"Letters:"<<k<<endl;
    cout<<"Digits:"<<m<<endl;
    return 0;
}
这是C++输入一组数据的代码,你也看看,其实也差不多。

5 楼


谢谢[em2]

我来回复

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