- 主题:string中字符的判断
string s = "A_1234567";
if(s[1] != '_')
return;
以上,在执行到if的时候,报告subscript out of range。将代码做如下两种修改:
(1)
int c = s[1];
if(c != '_')
return;
(2)
if(!(s[1] == '_'))
return;
这两种方式均不报错。
这是怎么回事?
编译环境:VC2010, 多字节字符集。
--
修改:klglfgljl FROM 60.10.57.59
FROM 60.10.57.59
vs2010也不会有这么低级的错误啊
这种匪夷所思的,正常都是自己的问题
--
FROM 60.12.138.*
我知道的,肯定是我的问题,关键是我不知道自己的问题在哪儿。怀疑和数据类型转换有关,但是还是摸不着头脑。
最终我是这样做的:
string s = "A_1234567";
char c = s[1];
if(c != '_')
return;
【 在 z16166 的大作中提到: 】
: vs2010也不会有这么低级的错误啊
: 这种匪夷所思的,正常都是自己的问题
--
FROM 60.10.57.59
贴复现问题的完整代码
【 在 klglfgljl 的大作中提到: 】
: 我知道的,肯定是我的问题,关键是我不知道自己的问题在哪儿。怀疑和数据类型转换有关,但是还是摸不着头脑。
: 最终我是这样做的:
: string s = "A_1234567";
: ...................
--
FROM 36.112.6.*
很简单,贴完整代码,别让人猜谜
【 在 klglfgljl (小鼠) 的大作中提到: 】
: 我知道的,肯定是我的问题,关键是我不知道自己的问题在哪儿。怀疑和数据类型转换有关,但是还是摸不着头脑。
:
: 最终我是这样做的:
:
--
FROM 222.129.205.*
我整理一下,原来的代码改的面目全非,需要回溯。
【 在 z16166 的大作中提到: 】
: 很简单,贴完整代码,别让人猜谜
--
FROM 60.10.57.59