主题:求助一个二级C的上机题strfun函数应该如何修改才能实现要求呢
[b]磁盘上有一个名为test3-1.c的C程序文件,其函数strfun的功能是:在字符串中,删除以字符‘<’开始,字符‘>’结束的字符串内容(包括<>符号本身)。
例如,输入的字符串为:<html>This is a html page</html>,则输出结果为:This is a html page。
在main函数中,从文本文件test3-1.txt中读出一个字符串放入一维数组中,调用函数strfun删除以字符‘<’开始,字符‘>’结束的字符串内容,在主函数中输出删除后的结果。
请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:[/b]
[code=c]
#include "stdio.h"
#include "string.h"
void strfun(char str, char start, char end)
{ char *pstart,*pend;
while (str)
{ if (*str=start)
{
pstart=str;
pend=str+1;
while (*pend!='\0' || *pend!=end)
pend++;
if (pend==end)
while (*pstart++=*++pend);
}
str++;
}
}
void main( )
{ char string[81];
FILE *fp;
if((fp=fopen("test3-1.txt","r"))==NULL)
{ printf("Cannot open the file.\n");
exit(0);
}
fgets(string,81,fp);
strfun(string,'<','>');
puts(string);
}
[/code]
例如,输入的字符串为:<html>This is a html page</html>,则输出结果为:This is a html page。
在main函数中,从文本文件test3-1.txt中读出一个字符串放入一维数组中,调用函数strfun删除以字符‘<’开始,字符‘>’结束的字符串内容,在主函数中输出删除后的结果。
请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:[/b]
[code=c]
#include "stdio.h"
#include "string.h"
void strfun(char str, char start, char end)
{ char *pstart,*pend;
while (str)
{ if (*str=start)
{
pstart=str;
pend=str+1;
while (*pend!='\0' || *pend!=end)
pend++;
if (pend==end)
while (*pstart++=*++pend);
}
str++;
}
}
void main( )
{ char string[81];
FILE *fp;
if((fp=fopen("test3-1.txt","r"))==NULL)
{ printf("Cannot open the file.\n");
exit(0);
}
fgets(string,81,fp);
strfun(string,'<','>');
puts(string);
}
[/code]