gpt4 book ai didi

比较 char* 和 char

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:42 28 4
gpt4 key购买 nike

我正在开发一个程序,从命令行输入中获取文件名。我需要检查输入是否是一个给定的字符说“-”并根据这个结果处理文件,但我不太确定该怎么做。我试过的方法,在逻辑上似乎是有道理的,只是检查是否

argv[1] == "-";

总是返回零,即使我在命令输入中写“-”也是如此。我能做什么?

最佳答案

你需要写strcmp(argv[1],"a")==0;

在您的示例中,您比较了两个指针,而不是两个字符串。
编译时,编译器在内存中的某处声明“a”,然后在编译时用它的内存地址替换它。由于 argv[1] 不能真正与(临时) "a"位于同一字节,因此结果始终为假。您需要遍历两个字符串并迭代比较每个字符。strcmp 比较 2 个字符串,如果它们以这种精确方式相等,则返回 0。

有关 strcmp 的更多信息:http://www.cplusplus.com/reference/cstring/strcmp/

为了处理多个字符,你可以放置几个 if-else :

if (strcmp(argv[1],"-")==0){
minus_character_handling_function();
} else if (strcmp(argv[1],"+")==0){
plus_character_handling_function();
} else if (strcmp(argv[1],"a")==0){
a_character_handling_function();
}

关于比较 char* 和 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875111/

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