2024-11-03 09:01:42
# include <stdio.h>
#include <malloc.h>
int main()
{
int block=100; //当录入达到最大时每次扩充的单位
int total=block; //total代表最大容量
int count=0; //count记录已录入的数量
char *str=(char*)malloc(total*sizeof(char)+1); //str记录起始地址
char * sp=str; //sp记录当前所处地址
char c; //c读取录入的字符
printf("输入:");
while((c=getchar())!=EOF)
{
if(c=='\n') //读到回车,则终结字符串并输出.但不计数,下次输入可覆盖'\0'
{
*sp=0;
printf("输出:%s\n", str);
printf("输入:");
}
else
{
++count; //计数,写入并移动指针
*sp++=c;
}
if(count==total) //当录入达到最大时扩充
{
total+=block;
str=(char*)realloc(str, total*sizeof(char)+1); //重新分配空间
sp=str+count; //定位
}
}
free(str);
return 0;
}
2024-11-03 03:21:13
那具体应该怎么写呢
不难,百度一下单链表、动态数组有很多介绍