首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

三级试题和向大家请问一下

2012-02-27 
三级试题和向大家请教一下程序是这样的:(程序很长主大家耐心看一下呀)注打星号之间的是要求填写的程序的一

三级试题和向大家请教一下
程序是这样的:(程序很长主大家耐心看一下呀)
注打星号之间的是要求填写的程序的一部分(即本人写的一段程序)
问题是这样的:
函数ReadDat()的功能是实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),该函数的功能是:以行为单位把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后并把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。
例如:原文:You     can       create       an     index     on     any     field.
                you       have       the   correct       record.
  结果:n     any       field.   Yu     can       create       an       index
          rd.     yu       have       the     crrect       rec
程序如下:
#include <stdio.h>
#include <String.h>
#include <conio.h>
char       xx[50][80];
int     maxline=0;
int     Read(void);
void     Write(void);
void     StrOR(void);
/*************************************
{         int     i,j,m,num=100,k=0;char     A[80],B[80];
          for(i=0;i <maxline;i++)
          {       for(j=0;j <80;j++)
                      if(xx[i][j]== 'o ')num=j;
                        if(num!=100)
                        {       m=num;
                                while(xx[i][m]!= '\0 ')
                                {         A[k]=xx[i][m];   k++;     m++;       }
                            }
              A[k]= '\0 ';k=0;
for(j=0;j <num;j++)
    {       if(xx[i][j]== 'o ')continue;
            B[k]=xx[i][j];k++;
            B[k]= '\0 ';
          strcpy(xx[i],A);strcat(xx[i],B);
                      }

    }
}
/***************************
void     main()
{     clrscr();
        if(ReadDat())   {
          printf( "数据文件IN.DAT不能打开!\n\007 ");
          return;
}
          }
strOR();
WriteDat();
}
int       ReadDat(void)
{       FILE       *fp;
        int         i=0;
        char       *p;
        if((fp=fopen( "IN.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     Write(void)
{     FILE     *fp;
        int       i;
        clrscr();
    fp=fopen( "OUT5.DAT ", "w ");
    for(i=0;i <maxline;i++){
      printf( "%s\n ",xx[i]);
        fprintf(fp, "%s\n ",xx[i]);
    }
    fclose(fp);
}

程序说明为系统函数声明错误。请高手级看一下吧。


[解决办法]
int ReadDat(void);
void WriteDat(void);
void main()
{
//clrscr();
if(ReadDat()) {
printf( "数据文件IN.DAT不能打开!\n\007 ");
return;
}
//}
//strOR();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen( "IN.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(void)
{
FILE *fp;
int i;
//clrscr();
fp=fopen( "OUT5.DAT ", "w ");
for(i=0;i <maxline;i++){
printf( "%s\n ",xx[i]);
fprintf(fp, "%s\n ",xx[i]);
}
fclose(fp);
}

热点排行