#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//字典序排序字符串
#define MAX_LEN 200
#define N 200
int main()
{
int n;
char words[N][MAX_LEN];
char str[MAX_LEN];
gets(str);
n = GetWords(str,words);
SortString(words,n);
for(int i=0; i<n; i++)
{
puts(words[i]);
}
return 0;
}
//将输入的一整句话str,按一个个单词的形式存入words里面,返回单词个数
int GetWords(char str[MAX_LEN], char words[N][MAX_LEN]){
int k = 0;
int i = 0;
int m = 0;
int n = 0;
char tempc;
while(str[i] != '\000'){
tempc = str[i];
while(str[i] != ' ' && str[i] != '\000'){
tempc = str[i];
words[n][m++] = str[i++];
}
if(m != 0){
words[n][m]='\0';
n++;
}else{
i++;
}
m=0;
}
return n;
}
void SortString(char words[N][MAX_LEN],int n){//将words里面单词按字典序排序
char temp[MAX_LEN];
int i,j;
for(i=0; i<n-1; ++i) {
for(j=i+1; j<n; ++j)
{
if(strcmp(words[i], words[j])>0)
{
strcpy(temp, words[i]);
strcpy(words[i], words[j]);
strcpy(words[j], temp);
}
}
}
}
程序示例: