如何读取长度未知的输入字符串?

如果我不知道这个单词有多长,我就不能写charm[6],
这个词的长度可能是十或二十长。
如何使用scanf从键盘获取输入

#包括<标准h>
内部主(空)
{
charm[6];
printf(“请输入长度为5\n的字符串”);
扫描频率(“%s”和“m”);
printf(“这是字符串:%s\n”,m);
返回0;
}

请输入长度为5的字符串
你好
这是字符串:你好

动态保护区域时进入

例如

#包括<标准h>
#包括<stdlib.h>
char*inputString(文件*fp,大小\u t大小){
//通过输入临时值扩展大小
char*str;
int-ch;
尺寸长度=0;
str=realloc(NULL,sizeof(*str)*size);//size是起始大小
如果(!str)返回str;
而(EOF!=(ch=fgetc(fp))&ch!='\n'){
str[len++]=ch;
if(len==大小){
str=realloc(str,sizeof(*str)*(size+=16));
如果(!str)返回str;
}
}
str[len++]='\0';
返回realloc(str,sizeof(*str)*len);
}
内部主(空){
char*m;
printf(“输入字符串”);
m=输入字符串(标准输入,10);
printf("%s\n",m);
自由(m);
返回0;
}

发表评论