命令行参数,打印列和行

Command line arguments, printing columns and rows

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

当我 运行 ./test Foo bar 我想让它打印出来

./test
Foo
o
o

bar
a
r

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

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");
}

最外面的循环从 1 开始,因为我不想打印出 ./test 位。但是我迷路了。我可以使用二维数组,但我想尝试使用额外的维度。

你能给我一些建议吗?

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

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

你的条件(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;
}