如何检测 char* 参数中的撇号?

方钉

我有 ac 文件,这样我就可以将参数传递给:

./cfile [-size number]

例如

./cfile -size 22

这是此类文件的示例代码:

int main(int argc, char** argv) {
     if (argv[1] != "-size") {
          fprintf(stderr, "Wrong format");
          return 1;
     }
     // get_number is some function that returns int value of number if number, NULL otherwise
     if (get_number(argv[2]) == NULL) {
          fprintf(stderr, "Wrong format");
          return 1;
     }
     return 0;
}
     

然而,当我写

./cfile '-size' '22'

我找不到让 C 确定撇号不应该存在的方法。由于每个参数上的撇号,我想抛出一个错误,但 c 似乎将它们视为不存在。

有没有办法做到这一点?

灌木丛

引号由 shell 解释以分隔参数。它们甚至在您的程序看到它们之前就被删除了。

所以你的程序只会看到-sizefor argv[1],而不是'-size'

此外,在比较字符串时,您需要使用strcmp. 使用!=or==比较字符串实际上是比较指针值,这不是您想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章