我正在尝试逐行保存输入,并将其存储在字符串中。我需要能够检测到空行或仅由空格组成的行,并在发生时打印“忽略”。我怎么做? strlen(str) == 0 似乎不起作用。
int getLine(char str[]) {
int i = 0;
int c;
while (i < N - 1 && (c = getchar()) != EOF && c != '\n') {
str[i] = c;
++i;
}
if (c == EOF) return 0;
str[i] = '\0';
return 1;
}
最佳答案
只包含空格的行不是空行。它充满了空间。
有多种方法可以做到这一点。希望这很清楚。
// Returns nonzero iff line is a string containing only whitespace (or is empty)
int isBlank (char const * line)
{
char * ch;
is_blank = -1;
// Iterate through each character.
for (ch = line; *ch != '\0'; ++ch)
{
if (!isspace(*ch))
{
// Found a non-whitespace character.
is_blank = 0;
break;
}
}
return is_blank;
}
关于c - 检测C中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30111018/