我需要做一个不区分大小写的查找,并找到以下代码来完成这个技巧
bool ci_equal(char ch1, char ch2)
{
return toupper((unsigned char)ch1) == toupper((unsigned char)ch2);
}
size_t ci_find(const string& str1, const string& str2)
{
string::const_iterator pos = std::search(str1. begin ( ), str1. end ( ), str2.
begin ( ), str2. end ( ), ci_equal);
if (pos == str1. end ( ))
return string::npos;
else
return pos - str1. begin ( );
}
Run Code Online (Sandbox Code Playgroud)
这让我想知道如何使它成为'string'的成员函数,所以可以像这样调用它:
string S="abcdefghijklmnopqrstuv";
string F="GHI";
S.ci_find(F);
Run Code Online (Sandbox Code Playgroud)
我意识到非英语语言中的案例转换存在许多问题,但这不是我感兴趣的问题.
作为一个新手,我很快就迷失在容器和模板中.
反正有没有这样做?有人能给我一个类似的例子吗?
| 归档时间: |
|
| 查看次数: |
5449 次 |
| 最近记录: |