我需要做一个不区分大小写的查找,并找到了以下代码
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 ( ); }
这让我想知道如何使它成为“string”的成员函数,因此可以这样调用:
string S="abcdefghijklmnopqrstuv"; string F="GHI"; S.ci_find(F);
我意识到非英语语言中的案例转换有很多问题,但这不是我感兴趣的问题.
作为一个新手,我很快迷失了容器和模板.
有没有这样做?有人可以给我一个类似的东西吗?
解决方法
std :: string不会被扩展.
您可以将std :: string封装在一个类中,并在该类中设置这些成员函数.