是否存在用於std :: string的不區分大小寫的find()方法?不區分大小寫的字符串:: find
6
A
回答
10
你可以大寫兩個字符串並使用常規查找。 (注意:如果你有Unicode字符串,這種方法可能不正確。)
在Boost中,對於不區分大小寫的搜索還有ifind_first
。 (請注意,它返回一個範圍而不是size_t
)。
#include <string>
#include <boost/algorithm/string/find.hpp>
#include <cstdio>
#include <cctype>
std::string upperCase(std::string input) {
for (std::string::iterator it = input.begin(); it != input.end(); ++ it)
*it = toupper(*it);
return input;
}
int main() {
std::string foo = "1 FoO 2 foo";
std::string target = "foo";
printf("string.find: %zu\n", foo.find(target));
printf("string.find w/ upperCase: %zu\n", upperCase(foo).find(upperCase(target)));
printf("ifind_first: %zu\n", boost::algorithm::ifind_first(foo, target).begin() - foo.begin());
return 0;
}
0
for(int i=0; i<yourString.length()
&& tolower(yourString[i])!=yourLoweredChar; i++)
{
return i;
}
return -1;
如果返回-1,那麼你的目標字符是不是有
否則給人的焦炭
2
2
這是我會建議,(同@programmersbook)
#include <iostream>
#include <algorithm>
#include <string>
bool lower_test (char l, char r) {
return (std::tolower(l) == std::tolower(r));
}
int main()
{
std::string text("foo BaR");
std::string search("bar");
std::string::iterator fpos = std::search(text.begin(), text.end(), search.begin(), search.end(), lower_test);
if (fpos != text.end())
std::cout << "found at: " << std::distance(text.begin(), fpos) << std::endl;
return 0;
}
相關問題
- 1. Remove_If不區分大小寫字符串
- 2. 不區分大小寫find()方法
- 3. 製作.find不區分大小寫
- 4. 區分大小寫字符串比較
- 5. 字符串區分大小寫順序
- 6. 區分大小寫字符串比較
- 7. Javascript |不區分大小寫字符串替換
- 8. 不區分大小寫的字符串替換符
- 9. 基於不區分大小寫的子字符串拆分字符串
- 10. regEx以不區分大小寫的字符串
- 11. 如何使字符串大小寫不敏感的Java腳本字符串不區分大小寫的功能
- 12. 在C++中替換子字符串不區分大小寫
- 13. Swift字符串中的區分大小寫的字符替換
- 14. 不區分大小寫拆分字符串
- 15. 帶標籤的不區分大小寫的子字符串
- 16. 對數組中的字符串不區分大小寫NSPredicate?
- 17. Elasticsearch中的意外(不區分大小寫)字符串排序
- 18. 不區分大小寫的字符串替換Go
- 19. 不區分大小寫的字符串搜索
- 20. PostgreSQL:不區分大小寫的字符串比較
- 21. 不區分大小寫的字符串比較C++
- 22. Julia不區分大小寫的字符串比較
- 23. 搜索不區分大小寫的字符串
- 24. 不區分大小寫的字符串。包含IEnumerable和IQueryable
- 25. C#.Net不區分大小寫的字符串
- 26. 內置不區分大小寫的字符串=
- 27. 查找不區分大小寫的字符串並替換(PHP)
- 28. 高效搜索不區分大小寫的ascii子字符串
- 29. 不區分大小寫字符串的變量replaceAll(,)方法Java
- 30. Go不區分大小寫的字符串比較
要看的意思是 「不區分大小寫。」你只有ASCII字母,還是你需要完整的Unicode排序規則? – Philipp