函数ReadDat( )的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请
函数ReadDat( )的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD( ),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat( )把结果xx输出到文件OUT7.DAT中。
例如,原文:dAe,BfC
CCbbAA
结果:fedCBA,
bbCCAA
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序已给出。
请勿改动主函数main( )、读函数ReadDat( )和写函数WriteDat( )的内容。
参考解答
#include
#include
#include
char xx[50[80;
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void SortCharD()
{
int i,j,k; /*定义循环控制变量*/
int str; /*存储字符串的长度*/
char temp; /*定义数据交换时的暂存变量*/
for (i=0;i
{
str=strlen(xx[i); /*求得当前行的字符串长度*/
for(j=0;j
for(k=j+1;k
if(xx[i[j
{
temp=xx[i[j;
xx[i[j=xx[i[k;
xx[i[k=temp;
void main()
{
system('CLS');
if (ReadDat())
{
printf('数据文件IN7.DAT不能打开!\n\007');
return;
SortCharD();
WriteDat();
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen('IN7.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('OUT7.DAT','w');
for(i=0;i
{
printf('%s\n',xx[i);
fprintf(fp,'%s\n',xx[i);
fclose(fp);
相似问题
下列关于综合布线的描述中 错误的是( )。A.多介质信息插座是用于连接双绞线和同轴电缆B.干线线缆铺
下列关于综合布线的描述中,错误的是( )。A 多介质信息插座是用于连接双绞线和同轴电缆B 干线线缆铺设经常采用点对点结合和分支结合两种方式C 终端有高
简述GDB调试器提供的基本功能。
简述GDB调试器提供的基本功能。
LINUX下 解压缩文件的命令为?A.tarzxvf文件名B.COPY文件名C.CAT文件名D.VI
LINUX下,解压缩文件的命令为?A tarzxvf文件名B COPY文件名C CAT文件名D VI文件名
目前对于大量数据存储来说 容量大 成本低 技术成熟 广泛使用的介质是( )。A.磁盘B.磁带c.光盘
目前对于大量数据存储来说,容量大、成本低、技术成熟、广泛使用的介质是( )。A 磁盘B 磁带c 光盘D 自软盘
从内到外数据库系统三级模式的数量关系为( )A.1:1:NB.1:2:NC.2:1:ND.2:3:N
从内到外数据库系统三级模式的数量关系为( )A 1:1:NB 1:2:NC 2:1:ND 2:3:N
