检查字符串是否包含换行符

标签 c string fgets character-arrays

当我逐行处理文件时,我将 fgets() 与字符数组缓冲区一起使用。如果缓冲区数组遇到新行,其最后位置是否会包含字符 '\n'

当文件开始新行时,fgets() 是否将 '\n' 存储在缓冲区中?如果没有,我该如何检查它们?

最佳答案

是的。 fgets()扫描尾随 \n 并将其存储在目标缓冲区中(如果源中存在)。

引用手册页,

Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer.

那么,回答您的问题

Check if String Contains New Line character [...] when a file starts a newline

你可以这样做

  • strchr()\n 一起检查输入行是否包含 \n 任何地方
  • 仅检查 buffer[0] == '\n' 的起始字节[文件开始一个新行情况]。

关于检查字符串是否包含换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429625/

相关文章:

javascript - 重复相同字符时正则表达式失败

这段代码可以包含缓冲区溢出吗?

c - 如何找出用户输入包含 C 中的非 ASCII 字符

c - 使用 fgets 多行输入字符串

用于编程作业的 CLI 菜单,将代码分成 block

c - 为什么将未使用的函数参数值转换为 void?

c - 如何使用动态分配的任意维数组?

有人能告诉我为什么这个程序打印-56吗?

c# - 文件 ReadAllLines 将外语变成乱码 (�)

c# - 如何在C#中获取倒数第二个字符串