我知道如何向后,向前等打印它们。但是,我无法垂直地从命令行打印一些东西。谁能解释一下?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int j;
int i = 0;
for (i = 1; i < argc; i++)
{
char *tmp = argv[i];
int len = strlen(argv[i]);
for(j = len-1; j > -1; --j)
printf("%c",tmp[j]);
printf("\n");
}
return 0;
}
这是我从命令行向后打印的东西,但是如何让它垂直打印?
答案 0 :(得分:1)
我想你想要像
这样的东西a a a a
r r r r
g g g g
1 2 3 4
所以想法是在第一行打印每个arg的第一个char,第二行是下一个char,直到结束
int main(int argc, char *argv[]) {
int j;
int i = 0;
int argsLength[argc];
int maxLength = 0;
// get lengths or args
for (i = 0; i < argc - 1; i++)
{
argsLength[i] = strlen(argv[i+1]);
if(argsLength[i]>maxLength) {maxLength = argsLength[i];}
}
for (i=0;i<maxLength;i++)
{
for(j=0;j<argc-1;j++) {
if(argsLength[j]<i) {
printf("%c ",argv[j+1][i]);
}else{
printf(" "); // put a blank when not char should be printed
}
}
printf("\n");
}
return 0;
}