c语言删除续行符以及后续换行符
时间: 2024-09-19 10:12:14 浏览: 37
在C语言中,处理文本文件并移除续行符(通常表示为`\r\n` 或 `\n`) 和多余的空行可以使用标准库函数,如`fgets()`、`strtok()` 或 `getline()` 结合适当的字符串操作。以下是一个基本示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于删除字符串中的续行符和多余空行
void remove_newlines(char* str) {
size_t len = strlen(str);
// 查找最后一个非'\n'字符的位置
char* last_char = memchr(str, '\n', len);
if (last_char != NULL) {
// 如果有续行符,将它替换为空字符
*last_char = '\0';
// 避免删除最后一个'\n'后的空格或制表符
while (*(last_char + 1) == ' ' || *(last_char + 1) == '\t') {
last_char++;
}
// 再次检查是否还有额外的空行
if (*last_char == '\n') {
*last_char = '\0'; // 删除最后一个'\n'
}
}
}
int main() {
FILE* file = fopen("example.txt", "r"); // 打开文件
char line[1024]; // 读取线性的缓冲区
while (fgets(line, sizeof(line), file)) { // 逐行读取
remove_newlines(line); // 删除新行符
printf("%s", line); // 输出清理过的行
}
fclose(file); // 关闭文件
return 0;
}
```
阅读全文