c - 在 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 中打破长行代码而不必担心缩进。
解决方案
去掉||
最后一个括号之前的。这将解决您的编译错误。然而,你试图做的事情的逻辑是行不通的。条件总是会评估为真。(尝试更改||
为&&
)
推荐阅读
- reporting-services - SSRS 使用一个数据集输出报表的多个实例,在文档级别进行迭代
- javascript - 如何验证具有特定数字 os caracteres 的表单
- javascript - 将 Ajax 响应下载为 zip 文件?
- callback - 使用宏变量名调用宏
- javascript - 有效的 JSON 文件可以只包含一个对象的描述吗?
- php - 拆分为具有相同行为的 preg_split 替代方案
- sql - 使用 (T-)SQL 截断字符串中的每个单词
- json - 如何在 vue.js 中获取嵌套的 JSON 数据
- appveyor - 允许强名称签名
- c# - 数据读取器问题与选择器内的图像