如题所述
两种方法,
定义一个尽可能大的字符串
scanf("%s",s);
2.每次读入一个字符,使用realloc动态分配内存
char s[1];char c;
scanf("%c",&s[0]);
int i = 1;
while(scanf("%c",&c)&&c!='\n')
{
s = realloc(s,(i+1)*sizeof(s[0]));
s[i++]=c;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2017-01-05
呃呃,不行的哦。一开始可以定义的多一点。但是可以动态修改字符串长度:
char *str = "abc";
str = (char *)malloc (sizeof (char *) * 这儿是新字符串的长度,算上末尾的0)
望采纳,谢谢!!!
第2个回答 2017-01-05
图片不清楚……建议使用动态内存分配法,malloc与realloc等函数调用追答
具体使用方法,可百度,或者手册
或者问我😃