如何打印单个字符的可变长度字符串

时间:2016-02-29 05:23:14

标签: c vba function c-strings

我需要打印一个给定字符的变量号和我的格式化输出。我正在寻找类似或类似于VBA函数String(num,char)的东西,但一直无法找到。我已经写了一个功能来完成这项工作,但是如果有内置功能,我很乐意知道。这就是我所拥有的。为了测试我正在使用argv []的草率实现。

我想要的是打印出这样的东西;

enter image description here

这是我提出的粗略实施;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const char * make_string(int num,  char character)
{
    char *strchars = malloc(num);
    for (int i = 0; i < num; i++)
        strchars[i] = character;

    return strchars;
}

int main(int argc, char *argv[])
{
    for (int i = 1; i < argc; i++) {
        printf("%s\n", make_string(strlen(argv[i]),'_'));
        printf("%s%c %s\n", make_string(strlen(argv[i]),'_'),'|', argv[i]);
    }
}

是否有用于打印重复字符串的库函数?

1 个答案:

答案 0 :(得分:2)

这个答案归功于UmamaheshP指出我正确的方向与评论。这就是我所寻找的,并根据他所链接的例子进行了改编。

#include <stdio.h>
#include <string.h>

int main (int argc, char *argv[]) {
    int i;
    char *pad = "________________";
    for (i = 1; i < argc; i++)
        printf ("%.*s\n%.*s%c %s\n", strlen(argv[i]), 
            pad,strlen(argv[i]), pad, '|', argv[i]);
}