gpt4 book ai didi

c++ - 检查参数是否为空或不相同

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:31 24 4
gpt4 key购买 nike

#include <iostream>

using namespace std;

int main(int argc,char* argv[]){
if(argv[1] == ""){
cout << "please put something" << endl;
}else if(argv[1] == "string"){
cout << "yeah string" << endl;
}else if(argv[1] == "integer"){
cout << "yeah integer" << endl;
}
}

我不知道出了什么问题:我尝试检查为 argv[1] 提供的参数是否为空,所以它将是 false 并且应用程序将退出,所以请告诉我哪里出了问题我的代码。

最佳答案

每个人都给你不同的答案。事实上,每个人都是对的。

main的签名,int main(int argc, char *argv[])继承自C。在 C 中,字符串是指向 char 的指针。当您对它们使用 operator== 时,您只比较指针值。

C比较字符串内容的方法是使用strcmp

if (strcmp(argv[1], "integer") == 0){

用 C++ 的方式更安全、更容易。

if (std::string(argv[1]) == "integer"){

此行从 argv[1] 创建一个临时的 std::string。您必须包含 string 才能正常工作。

最后检查是否 argc == 2 以了解是否提供了参数。argv 确实由 standard 3.6.1 终止。但它绝对让事情更清楚地检查 argv 确实等于 2。

关于c++ - 检查参数是否为空或不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14002218/

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