很難判斷你卡在哪裏,但我會盡我所能提供幫助。如果我把時間浪費在你已經知道的事情上,我很抱歉。
比方說,你傳遞給你的程序(通過IDE或命令行):1156 q.p
argc
然後是3(第一個參數是程序本身的名稱),並argv
看起來是這樣的:
argv[0] = "program_name";
argv[1] = "1156";
argv[2] = "q.p";
需要注意的是:參數的數量並不固定,如果您嘗試讀取比您傳遞的參數更多的參數,您的程序將崩潰。 (從技術上講,它會導致不確定的行爲,這意味着任何事情都可能發生。)
C字符串的字符,並在最後一個特殊的NULL字符只是陣列,像這樣:
char program_name[] = {'p', 'r', 'o', 'g', 'r', 'a', 'm', 0};
字符可以像對待數字 - 實際上,它們是數字。這些線都做同樣的事情:
char a = 'a';
char a = 97;
這也意味着你可以對它們進行比較:'a' == 97
和'a' < 'z'
。
ASCII字符分別被方便地映射爲:0-9,A-Z和a-z分別映射到48-57,65-90和97-122。這意味着,例如,如果字符介於'0'和'9'之間(包含),則該字符是數字。
要測試字符串中的每個字符,您需要遍歷它。本示例檢查字符串中的每個字符是否爲'X':
bool is_all_Xs(const char *str) {
for(int i = 0; str[i] != 0; ++i) {
if(str[i] != 'X') {
return false;
}
}
return true;
}
希望這足以指向正確的方向。
你已經試過了什麼?請告訴我們你的代碼。我們不是在這裏爲你做功課,但如果你有一個具體的問題,你告訴我們你正在努力,我們可以幫助你。 – computerfreaker
今天大多數電腦都使用[ASCII字母](http://www.asciitable.com/)。如果你看看那張桌子,我相信你可以弄清楚什麼。請記住字符文字和它們的ASCII值是可以互換的。所以例如字符文字「a」等於「97」。我建議在比較中使用字符文字以提高可讀性。 –
編輯你的問題,不要把信息放在評論 – Federico