下面是小编为大家整理的字符按从小到大顺序(全文),供大家参考。
字符按从小到大的顺序. txt 熬夜, 是因为没有勇气结束这一天; 赖床, 是因为没有勇气开始这一天。
朋友, 就是将你看透了 还能喜欢你的人。
函数 ReadDat( ) 的功能是实现从文件IN73. DAT 中读取一篇英文文章存入到字符串数组 xx 中。
请编制函数 SortCharA( ) , 该函数的功能是:
以行为单位对字符按从小到大的顺序进行排序, 排序后的结果仍按行重新存入字符串数组 xx 中。
最后调用函数 WriteDat( ) 把结果 xx 输出到文件 OUT73. DAT 中。
例如, 原文:
dAe, BfC CCbbAA 结果:
ABCdef AACCbb 原始数据文件存放的格式是:
每行的宽度均小于 80 个字符, 含标点符号和空格。
注意:
部分源程序已给出。
请勿改动主函数 main( ) 、 读函数 ReadDat( ) 和写函数 WriteDat( ) 的内容。
试题程序:
#include<stdio. h> #include<string. h> #include<stdlib. h>
char xx[50][80]; int maxline=0;
int ReadDat(void) ; void WriteDat(void) ;
void SortCharA()
{
int i, j, k;
/*定义循环控制变量*/
int str;
/*存储字符串的长度*/
char temp;
/*数据交换时的暂存变量*/
for (i=0; i<maxline; i++)
/*以行为单位获取字符*/
{
str=strlen(xx[i]) ;
/*求得当前行的字符串长度*/
for(j=0; j<str-1; j++)
/*对字符按从小到大的顺序进行排序*/
for(k=j+1;k<str; k++)
if (xx[i][j]>xx[i][k])
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
void main()
{
system("CLS") ;
if (ReadDat() )
{
printf("数据文件 IN73. DAT 不能打开!\n\007") ;
return;
}
SortCharA() ;
WriteDat() ;
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("IN73. DAT", "r") ) ==NULL)
return 1;
while(fgets(xx[i], 80, fp) !=NULL)
{
p=strchr(xx[i], " \n" ) ;
if (p)
*p=0;
i++;
}
maxline=i;
fclose(fp) ;
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
system("CLS") ;
fp=fopen("OUT73. DAT", "w") ;
for(i=0; i<maxline; i++)
{
printf("%s\n", xx[i]) ;
fprintf(fp, "%s\n", xx[i]) ;
}
fclose(fp) ;
}