gpt4 book ai didi

c++ - 如何比较参数字符串 Visual C++

转载 作者:行者123 更新时间:2023-11-28 07:44:28 26 4
gpt4 key购买 nike

我想做一些简单的事情:检查参数是什么。

void _tmain(int argc, WCHAR *argv[])
{



if(argv[4] == "-h");
{

//do stuff
}


}

我收到从 WCHAR * 到 const char * 的不兼容错误。

这样的转换题有人问过,但是我找到的答案很多,也不简单。我是 C++ 的新手。

我要寻找的不是指向某些复杂函数的指针,而是要放入我的程序中以使其运行的实际代码。

只是在寻找一些简单、直接、有效的代码。谢谢!

最佳答案

这里有两个问题:

  1. 将“指向 char 的指针”与字符串对象的逻辑概念混为一谈。在 C(和 C++)中,指向 char 的指针 (char*) 按照约定只是 C 风格的字符串。我的意思是,如果您用 nul 终止它 (\0) 并使用适当的库方法。因为指向 char 的指针不是实际的字符串类型,所以您执行的是指针相等而不是逻辑相等。

  2. 将宽字符 (L"A") 与窄字符 ("A") 合并。这是两个截然不同的概念,不太可能对您有帮助。

我建议放弃 Unicode 入口点:

/* do you really want C or C++? */
int main(int argc, char **argv)
{
/* now we're "narrow" characters, which will be more natural for you */

并改进您的测试(或使用 getopt ):

    if (0 == strcmp(argv[4], "-h"))
{
/* argv[4] is equal to "-h" */

如果你真的想要 C++,你应该使用 std::string 而不是旧的 C 风格的字符串。

关于c++ - 如何比较参数字符串 Visual C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15163933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com