【发布时间】:2015-02-05 16:28:03
【问题描述】:
代码:
int my_strlen(char *string){
int i;
for(i = 0; string[i] != '\0'; i++);
return i;
}
int main(int argc, char* argv[]){
int length;
for(int i = 1; i < argc; i++){
length = my_strlen(argv[1]);
}
printf("Length of the command line args: %d\n", length);
}
输出:
$ ./a.out guy oneguy
$ Length of the command line args: 6
由于某种原因,它只计算最后一个参数,而忽略其他参数。我希望得到 10 个(长度)。
任何帮助都会很棒。
谢谢。
【问题讨论】:
-
将
length初始化为零并将length = my_strlen(argv[i]);更改为length += my_strlen(argv[i]);还要注意从1到i的更改。 -
“出于某种原因”?原因是这正是您在代码中表达的意思。 :)
-
你有什么理由不使用
strlen? -
@Axalo 完全没有理由。我只是想尝试另一种方式,只是为了练习。我知道 strlen 函数存在。
-
@user4533813 真实的更好,因为它使用了
const char *和size_t。你也没有理由不能这样做...... :)