一个小问题:原始字符串如CRYPT,FUNCTION,我要确定里面是否存在CRYPT,于是调用C++的find()函数,结果判断是不存在,怎么回事?
我的判断代码
if(strUseFlagsTmp.Find("CRYPT")) lpImport->fwUse = lpImport->fwUse|WFS_PIN_USECRYPT; //用于加密解密
代码执行完结果是fwUse中没有CRYPT值。
原因是a.find(b),如果b在a里则返回位置,不在返回string::npos。
上面语句执行完CRYPT在,返回了位置0,if去判断就是假也就是不存在了。
正确的判断语句是这样
if(strUseFlagsTmp.Find("CRYPT")==string::npos)
{}
else{
lpImport->fwUse = lpImport->fwUse|WFS_PIN_USECRYPT;
}