这么看有点乱,你可以下载附件,内容一样
#include
#include
main()
{
char s[200],temp[26];
char str[100][26];
int i=0,j=0,k=0;
int flag=0;
printf("please input : \n");
scanf("%[^\n]s",s); //注意这里"%[^\n]s",读到\n为止,也就是读一行
while(s[i]!='\0') //提取字符串
{
if(('a'<=s[i]&&s[i]<='z')||('A'<=s[i]&&s[i]<='Z')) //是字母
{
if(s[i]==s[i+1]-1) //开始出现连续字母
{
flag=1; //连续字母标记
str[j][k]=s[i];
i++;
k++;
}
else if((s[i]!=s[i+1]-1)&&flag==1) //从此处开始字母不再连续
{
flag=0;
str[j][k]=s[i];
str[j][k+1]='\0';
k=0;
i++;
j++;
}
else if((s[i]!=s[i+1]-1)&&flag==0) //前面没有连续字母,此处也没开始出现连续字母
i++;
}
else //不是字母
{
flag=0;
k=0;
i++;
}
}
for(i=0;i
for(k=i+1;k
if(strcmp(str[i],str[k])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[k]);
strcpy(str[k],temp);
}
}
}
for(i=0;i
puts(str[i]);
}
}
你可以先将是字符的提出来,保存在另外一个数组中,之后按照ascll 码的大小排序。