命令行参数,打印列和行
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;
}
我正在尝试打印出从命令行参数输入的字符。我在解决这个问题时遇到了一些麻烦。
当我 运行 ./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;
}