北航考研复试C语言题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

要求:字符串的查找删除

给定文件filein.txt 按要求输出fileout.txt。

输入: 无空格的字符串

输出: 将filein.txt删除输入的字符串(不区分大小写),输出至fileout.txt

sample

输入:in

输出:将filein.txt 中的In、IN、iN、in删除,每行中的空格全部提前至行首,输出至fileout.txt 例:

filein.txt中的值为:

#include

int main()

{

printf(" Hi ");

}

输出的fileout.txt为

#clude

tma()

{

prtf("Hi");

}

程序如下:

#include

#include

#include

#define LINE 100

#define MAX 20

void main()

{

FILE *fin,*fout;

char ch;

char s[MAX],tmp[LINE];

int len,space;

int i,j,k;

if((fin = fopen("filein.txt","r")) == NULL)

{

printf("cannot open \"filein.txt\".\n");

exit(0);

}

if((fout = fopen("fileout.txt","w")) == NULL)

{

printf("cannot open \"fileout.txt\".\n");

exit(0);

}

printf("Please input a string less than 20 characters:");

gets(s);

len = strlen(s);

while(!feof(fin))

{

for (i=0;(ch=fgetc(fin))!='\n'&&ch!=EOF;i++)

tmp[i]=ch;

tmp[i]='\0';

space=0;

for (i=0;i

{

if (tmp[i]==' ') space++;

if (strlen(tmp)>=len)

{

k=i;

for (j=0;j

{

if(tmp[k]==s[j]||tmp[k]-s[j]=='a'-'A'||tmp[k]-s[j]=='A'-'a')

k++;

else

break;

}

if(j==len)

{

k=i;

for(j=0;j

{

if (tmp[k+j]==' ')

space--;

else

tmp[k+j]=' ';

}

i=i+len-1;

}

}

}

for (j=0;j

fputc(' ',fout);

for (i=0;i

{

if (tmp[i]!=' ')

fputc(tmp[i],fout);

}

fputc('\n',fout);

}

fclose(fin);

fclose(fout);

}

相关文档
最新文档