很难判断你卡在哪里,但我会尽我所能提供帮助。如果我把时间浪费在你已经知道的事情上,我很抱歉。
比方说,你传递给你的程序(通过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