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

函数,该函数返回指向第一个空白字符(isspace)的指针,c,function,pointers,while-loop,char,C,Function,Pointers,While Loop,Char,我试图编写一个函数,返回一个指针,指向字符串s中指针p之后的第一个空格字符,该指针指向s中的一个字符。如果没有空白字符,则应返回空字符\0 现在我面临的问题是,我对这个问题的解决方案似乎不应该奏效。这就是所谓的解决方案: char * FirstWhiteSpaceAfter(char *p) { while(*p != '\0' && isspace(*p)) p++; return p; } 当看这个的时候,我看到的是它会返回第一个不是空格的

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

现在我面临的问题是,我对这个问题的解决方案似乎不应该奏效。这就是所谓的解决方案:

char * FirstWhiteSpaceAfter(char *p)
{
    while(*p != '\0' && isspace(*p))
        p++;
    return p;
}
当看这个的时候,我看到的是它会返回第一个不是空格的字符,而不是第一个空格。p将转到下一个字符,只要它指向一个空格,因此当while循环结束时,它将不会是一个空格并返回该字符


解决方案是错误的还是我看得不对?

我认为你是对的,应该是

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

这是一个生动的例子:不要介意输出代码是C++,函数中的函数应该以同样的方式在C中工作。

< P>我认为你是对的,应该是< /P>
char * FirstWhiteSpaceAfter(char *p)
{
    while(*p != '\0' && !isspace(*p))
        p++;
    return p;
}

这是一个生动的例子:不要介意输出代码是C++,函数中的函数应该以同样的方式在C中工作。

你试过在一些示例输入上运行它吗?你试过在一些示例输入上运行它吗?