我想问你为什么这2个代码彼此不相同?
没有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]);
}
答案 0 :(得分:6)
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]);
}
如果你的程序有不明确的行为,他们会做一些奇怪的事情,比如在一种情况下工作但在另一种情况下不工作。