100题第9题
不好意思,又开了个新贴,如果斑竹哥哥们认为贴在一起好的话,我再贴在一起。
9:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数SortCharD( ), 其函数的功能是: 以行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。
例: 原文: dAe,BfC.
CCbbAA
结果: fedCBA.,
bbCCAA
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
------------类型:字符串(单词)的倒置和删除。
void SortCharD(void) /*标准答案*/
{
int I,j,k,strl;
char ch;
for(I=0;I<maxline;I++) /*行数循环*/
{
strl=strlen(xx[I]); /*获得字符串长*/
for(j=0;j<strl-1;j++) /*在字符串长范围内循环*/
for(k=j+1;k<strl;k++) /*同样是在字符串范围内循环,但较前者后置一位。一般这样做的目的是解决排序问题。*/
if(xx[I][j]<xx[I][k])
{
ch=xx[I][j];
xx[I][j]=xx[I][k]; /*如果前者小于后者,那么将后者置前。*/
xx[I][k]=ch;
}
}
}