从字符串筛选出数字、大写字母和小写字母
如何对字符串进行分类呢?也就是如何从字符串筛选出数字、大写字母和小写字母呢(像下面这样)?
输入样例 :a2b1dDA
输出样例 :
3
abd
AD
12
这段代码就可以实现(如有误,还请大家多多包涵)
#include<stdio.h>
int main(void)
{
int i,j,k,temp,n=0;
int x=0,y=0,z=0;
char S[1005];
scanf("%s",S);
for(i=0;S[i]!='\0';i++)
{
n++;
}
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(S[j]<S[k])
{
k=j;
}
}
if(k!=i)
{
temp=S[k];
S[k]=S[i];
S[i]=temp;
}
}
for(i=0;i<n;i++)
{
if(S[i]>='a'&&S[i]<='z')
x=1;
}
for(i=0;i<n;i++)
{
if(S[i]>='A'&&S[i]<='Z')
y=1;
}
for(i=0;i<n;i++)
{
if(S[i]>='0'&&S[i]<='9')
z=1;
}
printf("%d\n",x+y+z);
for(i=0;i<n;i++)
{
if(S[i]>='a'&&S[i]<='z')
{
printf("%c",S[i]);
x=1;
}
}
if(x)
{printf("\n");}
for(i=0;i<n;i++)
{
if(S[i]>='A'&&S[i]<='Z')
{
printf("%c",S[i]);
y=1;
}
}
if(y)
{
printf("\n");
}
for(i=0;i<n;i++)
{
if(S[i]>='0'&&S[i]<='9')
printf("%c",S[i]);
z=1;
}
return 0;
}