从字符串中提取所有连续字母,并且每段连续字母构成一个字符串。
对提取的所有字符串按从小到大排序,将排序结果输出。
这么看有点乱,你可以下载附件,内容一样
#include<stdio.h>
#include<string.h>
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<j;i++) //排序
{
for(k=i+1;k<j;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<j;i++) //输出
{
puts(str[i]);
}
}
其实我的意思是连续的字母
举个例子:
输入asdfnjer2445656wdfw3fty5
输出asdfnjer wdfw fty
这样的。
#include
#include
int letter(char c)
{
if(('a'0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[k]);
strcpy(str[k],temp);
}
}
}
printf("output : \n");
for(i=0;i<j;i++) //输出
{
printf("%s ",str[i]);
}
printf("\n");
}