字符按从小到大顺序(全文)

时间:2022-08-02 08:00:09 浏览量:

下面是小编为大家整理的字符按从小到大顺序(全文),供大家参考。

字符按从小到大顺序(全文)

 

 字符按从小到大的顺序. 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) ;

 }

推荐访问:字符按从小到大顺序 从小到大 顺序 字符