我正在尝试打印出来自命令行参数输入的字符。我在缠绕这个问题时遇到了一些麻烦。
当我跑./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");
}
位。但我迷路了。我可以使用二维数组,但我想用额外的维度来尝试它。
你能给我一些指示吗?
答案 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");
}