设计一个字符串排序输出程序:从键盘上接收用户输入的若干行字符串(最多20行,每行最多100个字符),当

2024-12-03 20:54:37
推荐回答(1个)
回答1:

例如:输入 wanyan aaa yaoli teacher end 输出 aaa teacher wanyan yaoli 设计要求:(1) 设计一个输入函数,函数原型如下:int inputString(char s[][100]);函数功能:从键盘上接收若干个字符串保存到输入参数s二维数组中(s数组中一行保存一个字符串),同时函数返回输入的字符串数目;注意:“从键盘上输入一串字符串保存到一个二维数组的第i行”是inputString函数的一个关键设计。我们一般有两种设计方法: 其一,从键盘依次读取一个字符,这个字符是回车符输入结束;否则,依序保存到二维数组的第i行,即如下设计:for(int j=0; ; j++) { char c=getchar(); if(c==’\n’) break; s[i][j]=c;}注意:本题设计不允许用这种设计!其二,采用gets()函数进行输入。“从键盘上输入一串字符串保存到一个一维字符数组”这个处理我们已经很熟悉了gets(s),s是一个一维字符数组的数组名,其实,数组名就是一个数组的起始存放地址,gets(s)函数从键盘逐个接收输入的字符顺序保存到从s开始的地址中。那么,我们如何实现“从键盘上输入一串字符串保存到一个二维数组t的第i行”?即,gets()的输入参数是什么?gets(t)显然不对,因为t代表的是一个二维字符数组的数组名,无法传递给gets()函数这样的信息:输入数据保存到t数组的第i行。提示:对于二维数组计算机是当作一维数组看待的,即: char t[20][100],计算机认为t是一维数组(长度为20),这个一维数组的每个元素(即t[i])又是一个一维字符数组(长度为100),所以我们不难知道“从键盘上输入一串字符串保存到一个二维数组t的第i行”该如何表达了.(2) 设计一个字符串排序函数,函数原型如下: void sortString(char s[][100], int ArraySize);函数功能:输入参数为一个二维字符数组,该数组中保存了若干条字符串(s数组中一行保存一个字符串),字符串数目由ArraySize变量指示,请按字符串的大小从低到高输出s中保存的所有字符串。提示:比较两个字符串可以用strcmp()函数。(3) 设计一个main函数组织整个程序。