C语言 如何垂直打印命令行参数



我知道如何向后、向前打印它们等。但是,我在垂直打印命令行外的内容时遇到问题。谁能解释一下?

#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;
}

最新更新