最近在做项目,用到了字符串里是否存在某些字符串。
修改前代码:
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;
}