首页 > 解决方案 > 在 C 中破坏长行代码后出错

问题描述

代码:

for(int i = 0; *(str + i) != '\0'; i++){
    if(*(str + i) != 'a' ||
       *(str + i) != 'e' ||
       *(str + i) != 'i' ||
       *(str + i) != 'o' ||
       *(str + i) != 'u' ||
       *(str + i) != 'A' ||
       *(str + i) != 'E' ||
       *(str + i) != 'I' ||
       *(str + i) != 'O' ||
       *(str + i) != 'U' ||) {

        new_str[index] = *(str + i);
        index ++;
       }

    else{
      *(vowels + vow_index) = *(str + i);
      vow_index ++;

    }
  }

错误:

ex3.c:81:28: error: expected expression
       *(str + i) != 'U' ||) {
                           ^
1 error generated.

为什么会这样?我认为我可以在 C 中打破长行代码而不必担心缩进。

标签: c

解决方案


去掉||最后一个括号之前的。这将解决您的编译错误。然而,你试图做的事情的逻辑是行不通的。条件总是会评估为真。(尝试更改||&&


推荐阅读