繁体   English   中英

命令行参数,打印列和行

[英]Command line arguments, printing columns and rows

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

当我运行./test Foo bar时,我希望它打印

./test
Foo
o
o

bar
a
r

虽然这可能不是最佳解决方案,但我希望使用char数组组成的数组来完成它,它看起来像三维数组,因此我将使用三层嵌套的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 -bit。 但是我迷路了。 我可以使用二维数组,但我想尝试使用额外的维度。

你能给我一些指导吗?

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

您可以在2个循环中解决此问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM