Выход путаница - PullRequest
       8

Выход путаница

0 голосов
/ 18 мая 2019

Не должен ли быть вывод: Heo Word?поскольку он будет печатать письмо, если они не '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;
       } 
   }

1 Ответ

3 голосов
/ 18 мая 2019

Код в условии цикла while уже увеличивает значение указателя

while ( *p++ )

таким образом, проверка внутри области видимости петель

if ( *p != 'l' )

всегда пропускает 1-й символ.

Самый простой и понятный способ переписать этот цикл - это, вероятно,

 char str[] = "Hello World\n";  
 for (char*p = str; *p; ++p) {
     if ( *p != 'l' )       
         cout << *p;
 } 

Рабочий Пример в сети .

...