#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char ch[50][51],tmp[15];//ch是用来储存被分隔好的单词的,tmp用于临时存储单词
char s[50];//s用于存储输入的句子
int n=0,i,j,m,len;
gets(s);//输入句子
len=strlen(s);
for(i=0;i<=len;i++){
if(!isalpha(s[i])){//isalpha这个函数在ctype.h里,如果不是字母就返回一个0
//在此处,遇到非字母的肯定是另一个单词了
if(m>0){//m>0意味着这里至少有一个字母
tmp[m]='\0';//让第m+1的成为'\0',分隔单词
strcpy(ch[n],tmp);// 存储单词到tmp里
n++;//让下一个单词有位置可以存储
m=0;//m置零,重新计数
}
}
else{
tmp[m]=s[i];//如果是字母那m就加一,意味着单词字母加一,
m++;//存储字母,最后要多空出来一个位置给'\0'用于分割单词
}
}
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){//没什么好说的,冒泡排序
if(strcmp(ch[j],ch[j+1])>0){//要是ch[j]>ch[j+1]就往前排
char t[20];//下面就是交换了
strcpy(t,ch[j]);
strcpy(ch[j],ch[j+1]);
strcpy(ch[j+1],t);
}
}
}
for(i=0;i<n;i++){
puts(ch[i]);//输出
}
return 0;
}
输入一个句子,将其中单词按照字典排序
最新推荐文章于 2024-09-29 07:36:50 发布