我想问你为什么这两个代码彼此不等价?
没有 GUI 工作正常:
string str; cin >> str;
for(int n=0;n<=str.length();n++){
string total;
total=conversion(str[n]);
}
...但是在转换函数的输出中使用 GUI(Qt) 出现随机字符:
string str = ui->lineEdit->text().toStdString();
for( size_t n = 0; n <= str.length(); n++ ) {
string total;
total= conversion(str[n]);
}
最佳答案
for(int n=0;n<=str.length();n++){
string total;
total=conversion(str[n]);
}
是未定义的行为,因为对 str
的越界访问,你需要
for(int n=0;n<str.length();n++){
string total;
total=conversion(str[n]);
}
如果您的程序有未定义的行为,它们会做出奇怪的事情,比如在一种情况下工作但在另一种情况下不工作。
关于c++ - 相同的代码和不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16360540/