cpp
if (c > '0' && c <= '9')
{ string addCmd = "0" + c; }
代码错误:
"0"是const char[2]会退化为
const char*所以本意是想加入 "0"实际变成了 指针偏移 ;会一直匹配到\0为止 出现未知的错误;
c == '1'(ASCII 49)那就是"0" + 49→ 直接飞出字符串范围这不是字符串拼接 ,而是指针运算,行为完全不可控
优化:
std::string addCmd = std::string("0") + c; 转为string 类型 即可;
std::string addCmd(1, '0');
addCmd.push_back(c);