c ++小写字母没有区别

时间:2017-04-09 21:09:57

标签: c++

我有在其他字符串中查找字符串出现的方法。我的问题是如何让它在小写和大写字母之间没有区别?

int occurrences = 0;
string::size_type start = 0;

while ((start = base_string.find(to_find_occurrences_of, start)) != string::npos) {
    ++occurrences;
    start += to_find_occurrences_of.length(); 
}

5 个答案:

答案 0 :(得分:3)

为什么不在搜索之前将两个字符串都设置为大写?

答案 1 :(得分:2)

在比较之前将两个字符串规范化为大写或小写。

这里给出了使用transform()函数使用标准库的tolower()或toupper()函数如何执行此操作的说明:https://stackoverflow.com/a/313990/2355444

答案 2 :(得分:2)

检查这个答案 - 使用带有自定义谓词的std :: search为我找到最好的方法

https://stackoverflow.com/a/3152296/6910287

答案 3 :(得分:0)

将字符串中的所有字母设为大写/小字。

答案 4 :(得分:0)

尝试在比较的两侧使用tolower()库中的toupper()<cctype> (ctype.h)函数,以便任何差异都可以忽略不计。