【发布时间】:2011-06-19 00:36:43
【问题描述】:
我的程序使用 argc 和 argv[] 获取命令行参数。我的问题是如何找到 argv[1][i] 的长度。
我的代码获取 argv[] 的长度
int my_strlen(char input[]){
int len = 0;
while(input[len] != '\0'){
++len;
}
return len;
}
但是当我尝试查找 argv[1][len] 时,我得到的下标值既不是数组也不是指针: 我的尝试
int my_strlen(char input[]){
int len = 0;
while((input[1][len] - '0') != '\0'){
++len;
}
return len;
}
完整代码:
#include <stdio.h>
#include <math.h>
int my_strlen(char input[]);
int main(int argc, char *argv[]){
int length = 0;
length = my_strlen(argv[1]);
long numberArr[length];
int i, j;
for(i = 0; i < length; i++){
numberArr[i] = argv[1][i] - '0';
}
return 0;
}
int my_strlen(char input[]){
int len = 0;
while((input[1][len] - '0') != '\0'){
++len;
}
return len;
}
提前感谢您的帮助!
【问题讨论】:
-
argv是一个二维字符数组 (char),这意味着它是一个一维字符串数组。 -
@Gabe:谢谢,我正处于学习 C 的早期阶段,所以由于 C 中没有字符串类型,当人们将它们称为“字符串”时我有点困惑。不过谢谢你的帮助!
标签: c arrays multidimensional-array type-conversion