我编写了一个简单的程序来将字符串乘以定义的时间。 但是,它并没有真正起作用,也不知道为什么......
这很简单,我不知道问题是什么......
#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
答案 0 :(得分:3)
在循环结束时,i
已经是终结符位置的索引。
只做
res[i] = 0;