C ++:不区分大小写的前n个字符的字符串比较
||
我的问题与此类似,但是我有两个字符串(如
char *
),任务是将strnicmp
函数(仅适用于MS VC)替换为boost::iequals
。
注意strnicmp
不是stricmp
-它仅比较前n个字符。
有没有比这更简单的解决方案了:
void foo(const char *s1, const char *s2)
{
...
std::string str1 = s1;
std::string str2 = s2;
int n = 7;
if (boost::iequals(str1.substr(0, n), str2)) {
...
}
}
没有找到相关结果
已邀请:
6 个回复
公藕
硕歌沙
如果我理解正确,那么您正在检查前缀。的 最简单的方法是:
(请注意尺寸检查。如果是,则
不能是
的前缀 比longer10长。当然,
会 如果调用
的时间长于,则会遇到不确定的行为
。)
捕暑句簿姓
假设如果两个字符串都在前缀长度用尽之前结束,则表示匹配。 当然,上面假设ASCII字符串,其中ѭ16才有意义。
僻朵庙惩竣
炬卤遁蝎变
郡豪靠暖