c++ - 输出混乱
问题描述
输出不应该是: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;
}
}
解决方案
循环条件中的代码while
已经增加了指针值
while ( *p++ )
因此在循环范围内进行检查
if ( *p != 'l' )
总是错过第一个字符。
重写这个循环的最简单和最容易理解的方法可能是
char str[] = "Hello World\n";
for (char*p = str; *p; ++p) {
if ( *p != 'l' )
cout << *p;
}
在线工作示例。
推荐阅读
- triggers - DB2 触发器执行顺序
- javascript - 添加新元素后正确向下滚动
- mysql - 将大型mysql select语句加载到python中
- c# - 为每个单元格添加带有标签和按钮的自定义 DataGridViewColumn
- amazon-cloudformation - 使用 cloudformation 模板在云端添加 Lambda@edge includebody 字段?
- python - 如何找到一个值的n个小数?
- amazon-web-services - 具有 ALB 和 SSL 证书问题的 ECS:net::ERR_CERT_COMMON_NAME_INVALID
- matlab - 自由和强制响应功能
- javascript - 如何将卡从“待处理”选项卡添加到“已批准”?Vue.js
- git - 詹金斯无法访问 git