用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出

如题所述

#include<stdio.h>
#include<string.h>

int main()
{
 char ch[100][100];
 char c;
 char temp[100][100];
 int i=0,j=0;
 /*将整个句子中的单词分离出来*/
 while((c=getchar())!='\n')
 {
  if(c!=' ')
  {
   ch[i][j]=c;
   j++;
  }
  else
  {
   ch[i][j]='\0';
   j=0;
   i++;
  }
 }
 ch[i][j]='\0';

 /*按字典的顺序排列*/
 for(int k=0;k<=i;k++)
 {
  for(int m=k+1;m<=i;m++)
  {
   if(strcmp(ch[k],ch[m])>0)
   {
    strcpy(temp[i],ch[k]);
    strcpy(ch[k],ch[m]);
    strcpy(ch[m],temp[i]);
   }
  }
 }
 /*输出排列后的单词*/
 for(int k=0;k<=i;k++)
  printf("%s\n",ch[k]);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-01
用二维数组吧,比如定义a[10][10],开始读到a[0][10]里,遇到空格就换到a[1][10],依次类推。之后就是排序了,随你用什么方法。追问

关键是怎样放进去???

追答

首先把句子读到一个字符串里,然后按刚才的方法从字符串中读

追问

能麻烦你把这一段程序写出来吗?我基础比较差,还是不会!呜~~~

追答

只能说C语言的学习是靠练习练出来的。。。你懂我的意思吧。

第2个回答  2013-06-01
서명
사인
하시기 바랍니다
기대

행복한
내일
오늘
어제
날짜
도시
자매의
스타
한국
중국
쓰기
좋은
주말
전화
무엇

追问

I am sorry,I do not understand !

追答

    Sorry, this is C Language. You can use to Yahoo  slouch !