我知道如何向后、向前打印它们等。但是,我在垂直打印命令行外的内容时遇到问题。谁能解释一下?
#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;
}
这就是我从命令行向后打印内容的功能,但是如何使其垂直打印?
我想你想要类似的东西
a a a a
r r r r
g g g g
1 2 3 4
所以这个想法是在第一行打印每个 arg 的第一个字符,在第二行打印下一个字符,直到最后
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;
}