这题会一些c自带的函数会快很多
还有那个cin后面的getline,也是很大的
因为第一行那个T后面的回车,必须用那个getline去吸
这是坠痛苦滴
这题会一些c自带的函数会快很多
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是检测数字的
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了解一下?