将Strcmp与参数一起使用

时间:2018-10-11 00:44:21

标签: c file pointers stdin argv

if (strcmp(&(argv[i][0]),"-")==0){
fprintf(stderr,"invalid option: '-%c'\n",(argv[i][1]));}

我试图将标志“ -g”作为参数传递,我希望代码识别“-”并将其打印为无效标志。这似乎不起作用。我该怎么办?

2 个答案:

答案 0 :(得分:3)

argv [i] [0]是字符串argv [i]中的第一个字符。

仅使用if (argv[i][0] == '-')if (strncmp(argv[i],"-", 1) == 0)

答案 1 :(得分:0)

表达式&(argv[i][0])仅等于argv[i]的100%。您不能以这种方式形成字符串的前导子字符串。对于您的特定任务,通过char运算符执行单个==比较会更简单:

if (argv[i][0]) == '-') {
    fprintf(stderr, "invalid option: '-%c'\n", argv[i][1]);
}