1
我是一個業餘愛好者,我的任務是編寫一個程序,它接受命令行參數,其中一個必須是字符'N'或字符'A'。這是我認爲會有效地工作的方法:字符比較輸入在C
//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");
鑑於輸入./a.out 4 A
,並且使用printf
語句之前和之後給定的if語句,我實現了以下的輸出:
Valid is currently: 1
The second argument is: A
Valid is currently: 0
我想這隻會在argv [2]不是「N」或「A」時有效地使有效無效位無效,但它不起作用。然後我嘗試在類似的代碼片段中使用strcmp
,結果不成功。
這是我在C首先事業,所以請溫柔,但我已經試過一切從改變"
到'
,使用strcmp
代替!=
,甚至使用atoi
,雖然我不知道如果我用它正常。 C字符串輸入或比較中有什麼內在的東西我不理解?
不......他必須使用|| ..它不能是N和A在同一時間 – 2013-04-08 00:47:38
@LewsTherin確實。感謝您提醒我我的錯誤。 – 2013-04-08 00:48:19
@JorgeIsraelPeña工作,謝謝。不知道我怎麼沒有用strcmp自己打這個解決方案。我會在10分鐘後儘快接受你的回答。 – aquemini 2013-04-08 00:50:25