先用最简单粗暴的方法做了一下,直接用ASCII码判断:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
string a;
while(n--)
{
int count=0;
cin>>a;
for(int i=0;i<a.size();i++)
{
if(a[i]>='0'&&a[i]<='9')
count++;
}
cout<<count<<endl;
}
}
}
然后又用更通用的方法做了一下,就是调用<ctype.h>头函数里的isdigit()函数来判断是否为数字:
#include<iostream>
#include<string>
#include<ctype.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
while(n--)
{
int count=0;
string a;
cin>>a;
for(int i=0;i<a.length();i++)
{
if(isdigit(a[i]))
count++;
}
cout<<count<<endl;
}
}
}
同样,可以用<ctype.h>函数里的isalpha()判断是否是字母,isalnum()判断是否是字母或数字。