输出不应该是:嘿,字?因为只要它们不是'l',它将打印字母,但是我得到的输出是:eo World?
#include <iostream>
using namespace std;
int main() {
char str[] = "Hello World\n";
char* p = str;
while ( *p++ ) {
if ( *p != 'l' )
cout << *p;
}
}
答案 0 :(得分:3)
while
循环条件下的代码已经使指针值增加
while ( *p++ )
因此在循环范围内进行检查
if ( *p != 'l' )
总是错过第一个字符。
重写此循环的最简单,最易理解的方法可能是
char str[] = "Hello World\n";
for (char*p = str; *p; ++p) {
if ( *p != 'l' )
cout << *p;
}