解决如下。
原始问题:
如何获得与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)
最佳答案
您需要重新考虑您的问题。您不希望'string'不区分大小写,但是您可以比较一下,以使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/