我是一名 C 爱好者,我的任务是编写一个接受命令行参数的程序,其中一个参数必须是字符“N”或字符“A”。这是我认为会有效的方法:
//check argv[2], valid should be 1 at this point if argv[1] is an integer
printf("Valid is currently: %d, valid);
printf("The second argument is: %s, argv[2]);
if(argv[2] != "N" && argv[2] != "A") { valid = 0; }
printf("Valid is currently: %d, valid");
给定 input ,并在给定 if 语句之前和之后./a.out 4 A
using语句,我实现了以下输出:printf
Valid is currently: 1
The second argument is: A
Valid is currently: 0
我认为只有当 argv[2] 不是“N”或“A”时,这才会有效地使有效 - 无效位无效,但它不起作用。然后我尝试strcmp
在类似的代码片段中使用,以不成功的结果。
这是我在 C 中的第一个任务,所以请温柔一点,但是我尝试了从更改"
为'
、使用strcmp
而不是!=
甚至使用的所有方法atoi
,尽管我不知道我是否正确使用它。我不理解 C 字符串输入或比较中是否存在固有的东西?