命令行参数,打印列和行

时间:2016-01-25 00:56:33

标签: c arrays multidimensional-array command-line-arguments

我正在尝试打印出来自命令行参数输入的字符。我在缠绕这个问题时遇到了一些麻烦。

当我跑./test Foo bar我希望它打印

const

虽然它可能不是最好的解决方案,但我希望它可以使用字符数组的数组完成,它看起来像一个三维数组,所以我将使用三嵌套for循环。 到目前为止我所拥有的是:

./test
Foo
o
o

bar
a
r

最外面的循环从1开始,因为我不想打印出for (i = 1; i < argc; i++) { for (j = 0; j < argv[argc][j]; j++) { for (k = 0; k < argv[argc][j]; k++) { printf("%c", k); } } printf("\n"); } 位。但我迷路了。我可以使用二维数组,但我想用额外的维度来尝试它。

你能给我一些指示吗?

2 个答案:

答案 0 :(得分:3)

您的情况(j < argv[argc][j]k < argv[argc][j])是错误的。

像这样解决:

#include <stdio.h>

int main(int argc, char *argv[]){
    for (int i = 0; i < argc; i++) {
        puts(argv[i]);
        if(i){
            for(int j = 1; argv[i][j]; ++j){
                printf("%c\n", argv[i][j]);
            }
            printf("\n");
        }
    }
    return 0;
}

答案 1 :(得分:1)

你可以在2个循环中解决这个问题

for (i = 1; i < argc; i++) {
    for (j = 0; argv[i][j]!='\0'; j++) {
        printf("%c", argv[i][j]);
    }
    printf("\n");
}