【发布时间】:2012-05-24 04:02:02
【问题描述】:
谁能告诉我比较两个恒定字符星的最有效方法吗?
#include <iostream>
#include <string>
int main()
{
const char* value1 = "hello";
const char* value2 = "HELLO";
const char* possibility = NULL;
if(stricmp(value1, value2)==0)
{
std::cout <<"\nThey Match!!!!!" << std::endl;
}
else{std::cout << "\nThey dont match :("<< std::endl;}
return 0;
}
我使用了以下标准函数,但我知道这不是最有效的方法?
除了 stricmp 不能处理 NULL 之外,在我的情况下这有可能发生。
那么还有其他对性能有好处的替代方案吗?
提前致谢
【问题讨论】:
-
你怎么“知道”这不是最有效的方法?你衡量过替代品吗?实际上,您是否测量了 this 方法?您的性能要求是什么?
-
为什么你认为它没有效率?这将取决于 stricmp 是如何实现的,这将是特定于平台的,并且通常它们都得到了很好的优化。
-
using namespace std;在该命名空间中不使用 everything 的效率远低于strcmp所做的任何事情。 -
这是一个基本的例子。 . .插图 。 . .我无法粘贴我的实际来源,这将非常“难以”看到我的问题的主要焦点。
-
不过会更有趣 ;-)
标签: c++ performance optimization