if (strcmp(&(argv[i][0]),"-")==0){
fprintf(stderr,"invalid option: '-%c'\n",(argv[i][1]));}
我试图将标志“ -g”作为参数传递,我希望代码识别“-”并将其打印为无效标志。这似乎不起作用。我该怎么办?
答案 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]);
}