6-2 *删除行末空白字符 分数 15 作者 李祥 单位 湖北经济学院 有少数初学者编程时,没有留意行末多余的空白字符,这不是好的编程习惯。现在请你编写一个函数,把初学者源程序文件中每行末尾多余的空白字符全都删去。 函数原型 // 删除行末空白字符 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; } /* 你提交的代码将被嵌在这里 */
时间: 2024-01-14 14:02:38 浏览: 162
下面是我编写的函数 Cut(FILE *src, FILE *dst),可以删除源文件中每行末尾的多余空白字符,并将整理后的内容写入目标文件。
```
void Cut(FILE *src, FILE *dst)
{
char buffer[1024];
int len, i;
while (fgets(buffer, sizeof(buffer), src))
{
len = strlen(buffer);
i = len - 1;
while (i >= 0 && (buffer[i] == ' ' || buffer[i] == '\t' || buffer[i] == '\r' || buffer[i] == '\n'))
{
buffer[i] = '\0';
i--;
}
fputs(buffer, dst);
if (i < len - 1 && buffer[i+1] != '\n') // 输入的最后一行可能没有换行符
{
fputc('\n', dst);
}
}
}
```
函数的实现思路是:读取源文件的每一行,从行末开始,判断每个字符是否为空白字符(空格符 ' ',制表符 '\t',回车符 '\r',换行符 '\n'),若是则将其替换为字符串结束符 '\0'。最终将整理后的内容写入目标文件,同时在每行末尾添加换行符(除了输入的最后一行可能没有换行符)。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)