很诡异的一个函数,朋友们帮我看看
- C/C++ code
int _calculate_rule_::CalculateRule::CalItemPosition(const std::string& _s1) { char buf1[1024]={0}, *from=buf1; char buf2[1024]={0}, *to=buf2; strcpy(from, _s1.c_str()); from++; while(*from!='['&&*from!='\0') { *to=*from; from++; to++; //*to++=*from++; } *to='\0'; to=buf2; return atoi(to); }
- C/C++ code
int _ipos=CalItemPosition(_s1); //_key=_wdvec[_posmap.at(_ipos)]._key; //std::cout<<_ipos<<std::endl;
_s1="N3",这个函数的返回值应该是3的,为什么是0呢?
我用cout输出是3,注释掉cout这一行_ipos的结果变成了0,太诡异了。
求指点。
[解决办法]
看那个函数没有问题,楼主把代码再贴全一点
[解决办法]
我实际运行了一下,没问题呀,返回3
[解决办法]
[解决办法]
调戏一下啦