#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void my_sort(int a[],int n);
void ch_sort(char *a[],int n);
int is_alp(char x)
{
return (x>='a'&&x<='z')||(x>='A'&&x<='Z');
}
int is_num(char x)
{
return (x>='0')&&(x<='9');
}
int main()
{
char c;
int b[1000];
int state[1000];
int flag = 5;
int i,j,k,sum,signal=1;
char **a=(char**)malloc(100*sizeof(char*));
for (i=0;i<100;i++)
a[i]=(char*)malloc(100*sizeof(char));
i=j=0;
k=1;
sum =1;
int m=0;
int cnt_a,cnt_b;
char last='\0';
while ((c=getchar())!=EOF)
{
if (c==' ') continue;
if (flag==1)//数字
{
if ((c!=',')&&(c!='.')) sum=sum*10+c-'0';
else
{
b[j++]=sum*signal;
flag=5;
state[m++]=1;
}
}
else if (flag==0)//字母
{
if ((c!=',')&&(c!='.')) a[i][k++]=c;
else
{
a[i++][k]='\0';
flag=5;
k=1;
state[m++]=0;
}
}
else
{
if (c=='-')
{
flag=1;
signal=-1;
sum = 0;
}
if (is_alp(c))
{
flag=0;
a[i][0]=c;
}
if (is_num(c))
{
flag=1;
signal=1;
sum=c-'0';
}
}
if ((c=='.')&&(last=='\n')) break;
last=c;
int lena=i;
int lenb=j;
if (c=='\n')
{
ch_sort(a,lena);
my_sort(b,lenb);
cnt_a=cnt_b=0;
for (i=0;i<m;i++)
{
if (!state[i]) printf("%s",a[cnt_a++]);
else printf("%d",b[cnt_b++]);
if (i<m-1)printf(", ");
else printf(".\n");
}
i=j=0;
k=1;
sum =1;
flag=5;
m=0;
signal=1;
}
}
return 0;
}
void my_sort(int a[],int n)
{
int tmp,i,j;
for (i=1;i<n;i++)
{
tmp = a[i];
for (j=i;(j>0)&&(a[j-1]>tmp);j--)
a[j]=a[j-1];
a[j]=tmp;
}
}
int my_strcmp(char a[],char b[])
{
int len1=strlen(a);
int len2=strlen(b);
int i;
char*p=(char*)malloc((len1+1)*sizeof(char));
for (i=0;i<len1;i++)
{
if ((a[i]>='a')&&(a[i]<='z')) p[i]=a[i];
else p[i]=a[i]-'A'+'a';
}
p[i]='\0';
char*q=(char*)malloc((len2+1)*sizeof(char));
for (i=0;i<len2;i++)
{
if ((b[i]>='a')&&(b[i]<='z')) q[i]=b[i];
else q[i]=b[i]-'A'+'a';
}
q[i]='\0';
int x=strcmp(p,q);
free(p);
free(q);
return x;
}
void ch_sort(char *a[],int n)
{
int i,j;
char *tmp;
for (i=1;i<n;i++)
{
tmp = a[i];
for (j=i;(j>0)&&(my_strcmp(a[j-1],tmp)>0);j--)
a[j]=a[j-1];
a[j]=tmp;
}
}
#include <stdlib.h>
#include <string.h>
void my_sort(int a[],int n);
void ch_sort(char *a[],int n);
int is_alp(char x)
{
return (x>='a'&&x<='z')||(x>='A'&&x<='Z');
}
int is_num(char x)
{
return (x>='0')&&(x<='9');
}
int main()
{
char c;
int b[1000];
int state[1000];
int flag = 5;
int i,j,k,sum,signal=1;
char **a=(char**)malloc(100*sizeof(char*));
for (i=0;i<100;i++)
a[i]=(char*)malloc(100*sizeof(char));
i=j=0;
k=1;
sum =1;
int m=0;
int cnt_a,cnt_b;
char last='\0';
while ((c=getchar())!=EOF)
{
if (c==' ') continue;
if (flag==1)//数字
{
if ((c!=',')&&(c!='.')) sum=sum*10+c-'0';
else
{
b[j++]=sum*signal;
flag=5;
state[m++]=1;
}
}
else if (flag==0)//字母
{
if ((c!=',')&&(c!='.')) a[i][k++]=c;
else
{
a[i++][k]='\0';
flag=5;
k=1;
state[m++]=0;
}
}
else
{
if (c=='-')
{
flag=1;
signal=-1;
sum = 0;
}
if (is_alp(c))
{
flag=0;
a[i][0]=c;
}
if (is_num(c))
{
flag=1;
signal=1;
sum=c-'0';
}
}
if ((c=='.')&&(last=='\n')) break;
last=c;
int lena=i;
int lenb=j;
if (c=='\n')
{
ch_sort(a,lena);
my_sort(b,lenb);
cnt_a=cnt_b=0;
for (i=0;i<m;i++)
{
if (!state[i]) printf("%s",a[cnt_a++]);
else printf("%d",b[cnt_b++]);
if (i<m-1)printf(", ");
else printf(".\n");
}
i=j=0;
k=1;
sum =1;
flag=5;
m=0;
signal=1;
}
}
return 0;
}
void my_sort(int a[],int n)
{
int tmp,i,j;
for (i=1;i<n;i++)
{
tmp = a[i];
for (j=i;(j>0)&&(a[j-1]>tmp);j--)
a[j]=a[j-1];
a[j]=tmp;
}
}
int my_strcmp(char a[],char b[])
{
int len1=strlen(a);
int len2=strlen(b);
int i;
char*p=(char*)malloc((len1+1)*sizeof(char));
for (i=0;i<len1;i++)
{
if ((a[i]>='a')&&(a[i]<='z')) p[i]=a[i];
else p[i]=a[i]-'A'+'a';
}
p[i]='\0';
char*q=(char*)malloc((len2+1)*sizeof(char));
for (i=0;i<len2;i++)
{
if ((b[i]>='a')&&(b[i]<='z')) q[i]=b[i];
else q[i]=b[i]-'A'+'a';
}
q[i]='\0';
int x=strcmp(p,q);
free(p);
free(q);
return x;
}
void ch_sort(char *a[],int n)
{
int i,j;
char *tmp;
for (i=1;i<n;i++)
{
tmp = a[i];
for (j=i;(j>0)&&(my_strcmp(a[j-1],tmp)>0);j--)
a[j]=a[j-1];
a[j]=tmp;
}
}