1、输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开。
例:输入 12abc3KF12
? ? 输出 abc KF 12 3 12
? ? 输入 rwr21r3hello666world
? ? 输出 rwr r hello world 21 3 666
代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
//cout<<"test"<<endl;
string s;
cin>>s;
//cout<<s<<endl;
char s1[100];//小写
char s2[100];//大写
char s3[100];//数字
int n1=0,n2=0,n3=0;
for(int i=0;i<s.length();i++)
{
if(s[i]>='a' && s[i]<='z')
{
if(i==0)
{
s1[n1++]=s[i];
}else
{
if(s[i-1]>='a' && s[i-1]<='z')
{
s1[n1++]=s[i];
}else
{
s1[n1++]=' ';
s1[n1++]=s[i];
}
}
}
if(s[i]>='A' && s[i]<='Z')
{
if(i==0)
{
s2[n2++]=s[i];
}else
{
if(s[i-1]>='A' && s[i-1]<='Z')
{
s2[n2++]=s[i];
}else
{
s2[n2++]=' ';
s2[n2++]=s[i];
}
}
}
if(s[i]>='0' && s[i]<='9')
{
if(i==0)
{
s3[n3++]=s[i];
}else
{
if(s[i-1]>='0' && s[i-1]<='9')
{
s3[n3++]=s[i];
}else
{
s3[n3++]=' ';
s3[n3++]=s[i];
}
}
}
}
for(int i=0;i<n1;i++)
{
cout<<s1[i];
}
cout<<" ";
for(int i=0;i<n2;i++)
{
cout<<s2[i];
}
cout<<" ";
for(int i=0;i<n3;i++)
{
cout<<s3[i];
}
system("pause");
return 0;
}