返回指向第一个空白字符(isspace)的指针的函数

时间:2013-12-07 23:30:17

标签: c function pointers while-loop char

我正在尝试编写一个函数,该函数在指针p之后返回指向字符串s中第一个空白字符的指针,指针指向s中的一个字符。如果没有空格字符,则应返回空字符\ 0。

现在我遇到的问题是我遇到这个问题的解决方案似乎不应该有效。这就是解决方案应该是:

char * FirstWhiteSpaceAfter(char *p)
{
    while(*p != '\0' && isspace(*p))
        p++;
    return p;
}

当我看到这个时,我看到它会返回第一个不是空格的字符,而不是第一个空格。只要它指向一个空格,p就会转到下一个字符,所以当while循环结束时,它将不是一个空格并返回该字符。

解决方案是错误还是我看错了?

1 个答案:

答案 0 :(得分:1)

我认为你是对的,应该是

char * FirstWhiteSpaceAfter(char *p)
{
    while(*p != '\0' && !isspace(*p))
        p++;
    return p;
}

这是一个实例:http://ideone.com/k9upnQ不介意输出代码在c ++中,所讨论的函数应该以完全相同的方式在C中工作。