#include<stream>
# define maxsize 50
using namespace std;
struct link
{
char data;
link *next;
};
void creat(link *&p)
{
p=new link;
p->next=NULL;
}
void store(link *&p,char str[])
{
p=new link;
p->data=str[0];
p->next=NULL;
link *l,*s=p;
for(int i=1;i<strlen(str);i++)
{
l=new link;
l->data=str[i];
l->next=NULL;
s->next=l;
s=l;
}
}
void classify(link *&p1,link *&p2,link *&p3,link *&p4)
{
link *l1,*l2,*l3,*s1,*s2,*s3;
s1=p2;
s2=p3;
s3=p4;
while(p1!=NULL)
{
if(p1->data>='0'&&p1->data<='9')
{
l1=new link;
l1->data=p1->data;
s1->next=l1;
s1=l1;
}
else if(p1->data>='a'&&p1->data<='z'||p1->data>='A'&&p1->data<='Z')
{
l2=new link;
l2->data=p1->data;
s2->next=l2;
s2=l2;
}
else
{
l3=new link;
l3->data=p1->data;
s3->next=l3;
s3=l3;
}
p1=p1->next;
}
}
void Cout(link *&p1,link *&p2,link *&p3)
{
p1=p1->next;
p2=p2->next;
p3=p3->next;
while(p1!=NULL)
{
cout << p1->data;
p1=p1->next;
}
cout <<endl;
while(p2!=NULL)
{
cout << p2->data;
p2=p2->next;
}
cout <<endl;
while(p3!=NULL)
{
cout << p3->data;
p3=p3->next;
}
cout <<endl;
}
int main()
{
char str[maxsize];
cin >> str;
link *p1,*p2,*p3,*p4;
store(p1,str);
creat(p2);
creat(p3);
creat(p4);
classify(p1,p2,p3,p4);
Cout(p2,p3,p4);
return 0;
}
SWUST1039: 单链表中信息的分类
最新推荐文章于 2022-04-19 17:15:24 发布