2969. 分析字符

Li Dao

这题会一些c自带的函数会快很多
还有那个cin后面的getline,也是很大的
因为第一行那个T后面的回车,必须用那个getline去吸
这是坠痛苦滴

Li Dao

这题会一些c自带的函数会快很多

include

using namespace std;
int T;
string line;
int main()
{
cin>>T;
getline(cin,line);
for(int step=0;step<T;step++)
{
getline(cin,line);
int ll=line.length();
int Space=0,Digit=0,UAlpha=0,LAlpha=0,Else=0;
for(int i=0;i<ll;i++)
if(isdigit(line[i])) Digit++;
else if(isalpha(line[i])==1) UAlpha++;
else if(isalpha(line[i])==2) LAlpha++;
else if(line[i]==’ ‘) Space++;
else Else++;
printf(“case #%d:\n%d %d %d %d %d\n”,step,UAlpha,LAlpha,Space,Digit,Else);
}
return 0;
}

其中isalpha小写字母返回2,大写字母返回1,和asc码的相对大小关系一致
别搞反了
isdigit是检测数字的

Saitama

c和c++四不像,,,

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    getchar();
    for(int i=0;i<t;i++)
    {
        int a=0,b=0,c=0,d=0,e=0;
        string s;
        getline(cin,s);
        for(int j=0;j<s.length();j++)
        {
            if(s[j]>='A'&&s[j]<='Z')
                a++;
            else if(s[j]>='a'&&s[j]<='z')
                b++;
            else if(s[j]==' ')
                c++;
            else if(s[j]>='0'&&s[j]<='9')
                d++;
            else
                e++;
        }
        printf("case #%d:\n",i);
        cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e<<endl;
    }
    return 0;
}
爱丽丝_青贝尔克

isupper,islower,isdigit了解一下?

Saitama

这个其实问题不大,差不太多,,,

你当前正在回复 博客/题目
存在问题!