c++ - 如何在 Win32 控制台应用程序中将 argv[ ] 设置为不区分大小写?

标签 c++ winapi

下面解决了。

原始问题: 我怎样才能使与 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/

相关文章:

c++ - 我使用哪种增强图算法?

c++ - 如果头文件已经包含在预编译头文件中,我是否应该继续在我的源文件中包含头文件?

c# - 如何确定当前Windows定时器的分辨率?

winapi - 如何使用 Windows API 获取 Windows 注册表中 "App Paths"文件夹中显示的应用程序的路径?

ruby - 如何从 ruby​​ 应用程序将击键发送到窗口?

c++ - 不存在的行上的C++编译错误

c++ - 如何将模板函数声明为模板嵌套类的 friend ?

c++ - 从 C++ 处理程序捕获时如何获取 Ada 异常消息?

c# - 在给定 HWND 的情况下如何获取窗口的子窗口?

winapi - 如何确定Windows中的文本光标位置