getline检查行是否为空格

Mat*_*att 7 c whitespace getline

有没有一种简单的方法来检查一条线是否为空.所以我想检查它是否包含任何空格,如\ r \n\t和空格.

谢谢

cas*_*nca 20

您可以isspace在循环中使用该函数来检查所有字符是否都是空格:

int is_empty(const char *s) {
  while (*s != '\0') {
    if (!isspace((unsigned char)*s))
      return 0;
    s++;
  }
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

如果任何字符不是空格(即行不为空),则此函数将返回0,否则返回1.

  • `isspace`的参数应该转换为`unsigned char`(is*functions"不喜欢"负输入而`char`可能被签名):`isspace((unsigned char)*s)` (3认同)