c语言编程 在未知字符串长度下怎么输入字符串???

如题所述

两种方法,

    定义一个尽可能大的字符串

char s[9999];
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等函数调用追答

具体使用方法,可百度,或者手册

或者问我😃

相似回答