gpt4 book ai didi

比较 C 字符串与字符串指针的相等性

转载 作者:行者123 更新时间:2023-11-30 20:04:47 25 4
gpt4 key购买 nike

所以我正在开发一个创建和使用 shell 的项目。必须做的一件事是“|executable| -p |prompt| 应该允许用户选择用户定义的提示。否则,默认值应该是“257sh>”。我编写了代码来执行此操作,但无论如何它不断进入 else 语句。经过一些实验,我知道我的 argv[1] == "-p" 行是导致问题的原因,因为没有它代码就可以工作。问题是,当我打印出 argv[1] 时,它会打印“- p”(假设这就是我输入的内容)。这是我的 shell 函数。

    void shellLoop(char *n)
{
char *line;
char **args;
int status;
char name = n;

do{
printf("%s>", n);
line = sysReadLine();
args = splitLine(line);
status = execute(args);

free(line);
free(args);
}while(status);
}

这是我的主要功能

int main(int argc, char *argv[])
{
if(argc == 3 && argv[1] == "-p"){
shellLoop(argv[2]);
}
else{
shellLoop("257sh");
}

return EXIT_SUCCESS;
}

最佳答案

当您执行 argv[1] == "-p" 时,您会比较两个指针,并且两个永远不会相同的指针。

要比较 C 中的字符串,您可以使用 strcmp函数:strcmp(argv[1], "-p") == 0

关于比较 C 字符串与字符串指针的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705363/

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