我正在尝试编写一个函数,该函数在指针p之后返回指向字符串s中第一个空白字符的指针,指针指向s中的一个字符。如果没有空格字符,则应返回空字符\ 0。
现在我遇到的问题是我遇到这个问题的解决方案似乎不应该有效。这就是解决方案应该是:
char * FirstWhiteSpaceAfter(char *p)
{
while(*p != '\0' && isspace(*p))
p++;
return p;
}
当我看到这个时,我看到它会返回第一个不是空格的字符,而不是第一个空格。只要它指向一个空格,p就会转到下一个字符,所以当while循环结束时,它将不是一个空格并返回该字符。
解决方案是错误还是我看错了?
答案 0 :(得分:1)
我认为你是对的,应该是
char * FirstWhiteSpaceAfter(char *p)
{
while(*p != '\0' && !isspace(*p))
p++;
return p;
}
这是一个实例:http://ideone.com/k9upnQ不介意输出代码在c ++中,所讨论的函数应该以完全相同的方式在C中工作。