std::string find函数

来源:互联网 发布:u盘excel数据恢复 编辑:程序博客网 时间:2024/05/29 17:59

最近在做项目,用到了字符串里是否存在某些字符串。

修改前代码:

       if (sFromSA.find("NewYork") > 0)
{
cout << "New York" << endl;
}
else if (sFromSA.find("Beijing") > 0)
{
cout << "Bei Jing" << endl;
}
else if (sFromSA.find("Shang Hai") > 0)
{
cout << "Shang Hai" << endl;
}


由于之前有个错觉,认为find查出来的是字符串所在的位置,想当然的认为是整形

由于代码是在Linux下运行,看了日志发现无论sFromSA值为什么,总是走第一个if语句,后面的不走,百思不得其解,后来在VS下面一看,这个find的类型,恍然大悟。

修改后代码:

      if ((int)sFromSA.find("NewYork") > 0)
{
cout << "New York" << endl;
}
else if ((int)sFromSA.find("Beijing") > 0)
{
cout << "Bei Jing" << endl;
}
else if ((int)sFromSA.find("Shang Hai") > 0)
{
cout << "Shang Hai" << endl;
}



0 0