使用带参数的Strcmp
我试图将标志'-g'作为参数传递,我希望代码识别'-'并将其打印为无效标志。这似乎不起作用。我该怎么办?argv[I][0]是字符串argv[I]中的第一个字符使用带参数的Strcmp,c,file,pointers,stdin,argv,C,File,Pointers,Stdin,Argv,我试图将标志'-g'作为参数传递,我希望代码识别'-'并将其打印为无效标志。这似乎不起作用。我该怎么办?argv[I][0]是字符串argv[I]中的第一个字符 使用if(argv[i][0]='-')或if(strncmp(argv[i],“-”,1)==0)argv[i][0]是字符串argv[i]中的第一个字符 只使用if(argv[i][0]='-')或if(strncmp(argv[i],“-”,1)==0)表达式&(argv[i][0])完全等同于argv[i]。不能以这种方式形成字
使用
if(argv[i][0]='-')
或if(strncmp(argv[i],“-”,1)==0)
argv[i][0]是字符串argv[i]中的第一个字符
只使用if(argv[i][0]='-')
或if(strncmp(argv[i],“-”,1)==0)
表达式&(argv[i][0])
完全等同于argv[i]
。不能以这种方式形成字符串的前导子字符串。对于您的特定任务,通过=
操作符执行单个-char
比较会更简单:
if (strcmp(&(argv[i][0]),"-")==0){
fprintf(stderr,"invalid option: '-%c'\n",(argv[i][1]));}
表达式&(argv[i][0])
完全等同于argv[i]
。不能以这种方式形成字符串的前导子字符串。对于您的特定任务,通过=
操作符执行单个-char
比较会更简单:
if (strcmp(&(argv[i][0]),"-")==0){
fprintf(stderr,"invalid option: '-%c'\n",(argv[i][1]));}
argv[i][0]
将是第个
参数的第一个字符,例如'-'
。获取该角色的地址不是您想要的。您只需将其与确切的字符进行比较,如下所示:argv[i][0]='-'
谢谢@bruceg it workargv[i][0]
将是第
参数的第一个字符,例如'-'
。获取该角色的地址不是您想要的。您只需将其与确切的字符进行比较,如下所示:argv[i][0]='-'
谢谢@布鲁塞格:它能工作吗