下面解决了。
原始问题: 我怎样才能使与 argv[] 的比较不区分大小写?这是一个代码片段:
if (std::string(argv[2]) == "HKCU") //Si escriben HKCU
{
cout << "Has escrito HKCU" << endl;
}
else //Si no escriben la clave
{
cout << "Debes especificar HCKU o HKLM" << endl;
}
如果我传递参数“hkcu”,测试将不起作用,我必须输入“HKCU”。如果我在程序中比较“HKCU”或“hkcu”,这两个字符串都可以。
编辑:我必须以这种方式使用 _stricmp(使用 VS2013):
if (_stricmp(argv[2], "HKCU") == 0)
最佳答案
您需要重新考虑您的问题。您不希望“字符串”不区分大小写,但您更愿意通过比较了解 HKCU 与 Hkcu 或 hKcU 相同。
为此,有许多选项,其中之一是已经提到的函数 stricmp
。
原型(prototype)是:
#include <string.h>
int stricmp(const char *string1, const char *string2);
意思是,您可以像这样使用它:
if(stricmp(argv[2], "HKCU") == 0) {
}
另一个选项是 strcasecmp
函数,其操作类似。
希望这对您有所帮助。
关于c++ - 如何在 Win32 控制台应用程序中将 argv[ ] 设置为不区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219158/