相关疑难解决方法(0)

上与下案例

在进行不区分大小写的比较时,将字符串转换为大写或小写更有效吗?它甚至重要吗?

在这篇SO帖子中建议C#使用ToUpper更有效,因为"Microsoft以这种方式优化了它".但我也读过这个论点,转换ToLower与ToUpper取决于你的字符串包含的内容,并且通常字符串包含更多小写字符,这使得ToLower更有效.

特别是,我想知道:

  • 有没有办法优化ToUpper或ToLower,使一个比另一个更快?
  • 在大写或小写字符串之间进行不区分大小写的比较是否更快?为什么?
  • 是否存在任何编程环境(例如C,C#,Python等),其中一个案例明显优于另一个案例,为什么?

language-agnostic string uppercase

79
推荐指数
5
解决办法
4万
查看次数

C++中的std :: string是否有内置函数,当字符串可以是大写或小写时,按字母顺序比较两个字符串?

我知道对于C++来说,如果两个单词都是完全较低或完全是大写的话,那么基本的比较运算符就可以完成任务.我有一个字符串数组,字母可以从低到高不等.这是我可以使用的字符串的一个小问题:

"丰富的生活CH"

"新生活WMN MNSTRY"

"新生活大会"

我知道在Java中存在函数String.compareToIgnoreCase().这个函数有C++等价吗?

c++ string case-insensitive

7
推荐指数
2
解决办法
5008
查看次数

检查字符串是否包含子字符串,无论大小写

假设我有一些字符串,str。

我要检查 str 是否包含关键字:“samples” 但是,“samples”可以是任何形式的大写形式,例如:“Samples”、“SamPleS”、“SAMPLES”。

这就是我正在尝试的:

string str = "this is a FoO test";
if (str.find("foo") != std::string::npos){
    std::cout << "WORKS";
}
Run Code Online (Sandbox Code Playgroud)

这不会检测到“FoO”子字符串。有什么我可以通过的参数来忽略大写吗?还是我应该完全使用其他东西?

c++ string parsing substring

3
推荐指数
1
解决办法
2万
查看次数