【发布时间】:2015-01-08 06:43:07
【问题描述】:
大家好,我的 for 循环中发生了一件非常奇怪的事情。
当我在这里执行这段代码时:
#include <stdio.h>
#include <string.h>
char* repeat(char c, int n);
int main(void)
{
char* input;
input = repeat('c', 12);
return 0;
}
char* repeat(char c, int n)
{
char* out;
for (int i = 0; i < 12; ++i) //FIX ITERATION
{
int len = strlen(out);
out[len] = c;
out[len+1] = '\0';
}
printf("%s\n", out);
return out;
}
我得到了预期的输出:
cccccccccccc
但是当我在我的方法中使用传递的 int 时,像这样:
char* repeat(char c, int n)
{
char* out;
for (int i = 0; i < n; ++i) //VARIABLE ITERATION
{
int len = strlen(out);
out[len] = c;
out[len+1] = '\0';
}
printf("%s\n", out);
return out;
}
我只是把它作为输出:
cccc
请告诉我我做错了什么。我不知道错误可能是什么?
感谢您的帮助!
【问题讨论】:
标签: c string loops pointers for-loop