具体的题目如下所示:
有少数初学者编程时,没有留意行末多余的空白字符,这不是好的编程习惯。现在请你编写一个函数,把初学者源程序文件中每行末尾多余的空白字符全都删去。
函数原型
// 删除行末空白字符
void Cut(FILE *src, FILE *dst);
说明:参数 src
和 dst
均为文件指针,其中:src
指示初学者的源程序文件,dst
指示整理后的源程序文件。
注:
- 源程序中所能输入的空白字符仅限于空格符 ' ' (<SP>) 和 制表符 '\t' (<HT>)。
- 最后一行末尾可能没有换行符。
- 每一行的长度不限。
- 在 Unix 或 Linux 系统下,源程序文件每行末尾为一个换行符 '\n' (<LF>),而在 Dos 或 Windows 系统下,源程序文件每行末尾为一个回车符 '\r' (<CR>) 和一个换行符 '\n' (<LF>)。
裁判程序
#include <stdio.h>
#include <ctype.h>
#include <string.h>
// 删除行末空白字符
void Cut(FILE *src, FILE *dst);
int main()
{
char sname[1024], dname[1024];
FILE *sfile, *dfile;
gets(sname);
gets(dname);
sfile = fopen(sname, "rb");
if (!sfile)
{
printf("%s 无法打开!\n", sfile);
}
dfile = fopen(dname, "wb");
if (!dfile)
{
printf("%s 无法打开!\n", dfile);
}
if (sfile && dfile)
{
printf("正在整理...");
Cut(sfile, dfile);
puts("整理完成!");
}
if (sfile)
{
fclose(sfile);
}
if (dfile)
{
fclose(dfile);
}
return 0;
}
/* 你提交的代码将被嵌在这里 */
输入样例
old.c
new.c
old.c
...#include...<stdio.h>...
...
...int...main()...
...{...
.......printf("Hello,...world!\n");...
.......return...0;...
...}...
其中:... 表示若干空格符或水平制表符
输出样例
正在整理...整理完成!
new.c
...#include...<stdio.h>
...int...main()
...{
.......printf("Hello,...world!\n");
.......return...0;
...}