戈多W 2021-04-16 10:41 采纳率: 0%
浏览 574

如何用C语言编写一个程序,使得其可以清楚代码中多余的空格?

具体的题目如下所示

有少数初学者编程时,没有留意行末多余的空白字符,这不是好的编程习惯。现在请你编写一个函数,把初学者源程序文件中每行末尾多余的空白字符全都删去。

函数原型

// 删除行末空白字符
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;
...}
  • 写回答

3条回答 默认 最新

  • 关注

    现在是代码有问题?还是思路不清晰呢?好像没有看到你的Cut方法实现。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!