在C中乘以字符串

时间:2014-04-13 10:43:57

标签: c string

我编写了一个简单的程序来将字符串乘以定义的时间。 但是,它并没有真正起作用,也不知道为什么......

这很简单,我不知道问题是什么......

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

char *product(char *str, int k);

int main()
{
    char strg[1000];
    char *prod;
    int mult;

    scanf("%s", strg);
    scanf("%d", mult);

    prod = product(strg, mult);

    printf("%s\n", prod);

    return EXIT_SUCCESS;
}

char *product(char *str, int k)
{
    int i, j;
    int len = strlen(str);
    char *res = (char *) malloc(sizeof(char) * (len * k + 1));

    for (i = 0, j = 0; i < (len * k); i++, j++)
    {
            if (j == len) j = 0;

            res[i] = str[j];
    }

    res[++i] = '\0';

    return res;
}

任何可以帮助我找出问题所在的人? :d

1 个答案:

答案 0 :(得分:3)

在循环结束时,i已经是终结符位置的索引。

只做

res[i] = 0;