我需要在不询问长度的情况下获得一个字符串,我创建了一个100个字符的缓冲区,当缓冲区满了时,我会进行realloc,在字符串的末尾添加一个字符的空间
这是我的密码。。。你能帮我吗?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
char *content = malloc(10*sizeof(char));
char c;
content[0]=' ';
while ((c = getchar()) != EOF)
{
if (strlen(content) < 10){
strcat(content, &c);
content[strlen(content)+1] = ' ';
}
else {
content=realloc(content,sizeof(char)*(strlen(content))+2);
strcat(content, &c);
content[strlen(content)+1] = ' ';
}
}
printf("%s",content);
return 0;
}
这里有几个问题:
-
不要那样使用
strcat
!您应该传递一个指向以