这两个字符串有什么区别

string a = "vid:50E4";
string s = "50E4";
string x = a.substr(4);
stoi(x, nullptr, 16);

/字符串s和字符串x有什么区别呢
为什么用x去转换会报错 s却可以转换呢
/

结题 原来是字符串a中的中文符号:占了两个下标 这里的下标4改成6就行了😂

VS2010下测试没有问题啊。

string x = a.substr(4);
这是从头开始截取4个,里面放的是"vid:”

x= a.substr(4);这里,substr(4)默认从0开始截取,得到的结果是vid:,不是数字
50E4这个是可以转成数字的。

img


异常位置和x的输出 不是substr取值有错