函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),
函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。
例如,原文:dAe, BfC.
CcbbAA
结果:,. ABCdef
AACbbc
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。
include <stdio.h>
include <string.h>
include <conio.h>
char string [50] [80];
int maxline = 0; /* 文章的总行数 */
int Rdata (void);
void Wdata (void);
void SortCharA(void)
{
}
void main ()
{ if (Rdata ())
{ printf("数据文件 IN. dat 不能打开! \n\007");
return;
}
SortCharA ();
Wdata ( );
}
int Rdata (void)
{ FILE *fp;
int i = 0;
char *p;
if ((fp = fopen("IN. dat", "r")) == NULL)
return 1;
while (fgets(string[i], 80, fp) != NULL)
{ p = strchr(string[i], '\n');
if (p)
*p = 0;
i++;
}
maxline = i;
fclose (fp);
return 0;
}
void Wdata (void)
{ FILE *fp;
int i;
fp = fopen("OUT. dat", "w");
for (i=0; i<maxline; i++)
{ printf("%s\n", string[i]);
fprintf(fp, "%s\n", string[i]);
}
fclose (fp);
}
void SortCharA (void) { int i, j, k, str1; char ch; for (i=0; imaxline; i++) { str1 = strlen(string[i]); for (j=0; jstr1-1; j++) for (k=j+1; kstr1; k++) if (string[i] [j] > string [i] [k]) { ch = string[i] [j]; string[i] [j] = string[i] [k]; string[i] [k] = ch; } } } [解题思路] 这里采用strlen字符函数获取字符串的长度;对文章中的每一行的字符利用双重循环进行两两比较,较小的字符往行前放,较大的字符往行后放,这样就实现了以行为单位对字符从小到大的排序。在程序中的语句是if(string[i][j]>string[i][k])成立,string[i][j]和string[i][k]就交换数据。
求解线性代数设A是n阶矩阵,⑴若A满足矩阵方程A²-A+I=O,证明:A和I-A都可逆,并求解线性 其他 2020-05-14 …
微处理器对I/O口的编址方式有( )。A.将I/O口地址和主存储器地址统一编址B.将I/O口地址和存 计算机类考试 2020-05-23 …
微处理器对I/O口的编址方式为A.将I/O 口地址和主存储器地址统一编址B.将I/O 口地址和存储器 计算机类考试 2020-05-24 …
请问什么时候用an?a,e,i,o,u是指单词字母吗?请问什么时候用an?一直听说遇到a,e,i, 英语 2020-06-07 …
如图中的A~I表示几种初中化学常见的物质,分别由H、C、O、Cl、Na、Ca、Cu中的两种或两种以 化学 2020-06-12 …
选择元音字母在单词中发音不同的一项.1;A:h(a)nd;B:f(a)ce;C:(a)pple.2 英语 2020-06-17 …
复平面内,向量OA表示的复数为1+i,将OA向右平移一个单位后得到的向量为O′A′,则向量O′A′ 其他 2020-08-01 …
至少回答其一即可~1.设向量a=3i-j-2k,b=i+2j-k求(-2a)·(3b)[ps.a, 数学 2020-08-02 …
数学:设O为坐标原点,已知向量OZ1,向量OZ2分别对应复数z1,z2.且z1等于3/(a+5)+( 数学 2020-11-01 …
英语向高人求教!写几句话.每句开头的第一个字母分别是“L,i,U,F,E,i,F,E,i,w,o,a 语文 2020-12-15 …