#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* getString();
int main()
{
char *p = getString();
printf("%s\n",p);
free(p);
return 0;
}
char* getString()
{
char *pOld;
char *jiOld;
char *pNew;
size_t count = 0;
char t;
jiOld = pOld = (char*)malloc(sizeof(char) * 10);
while( (t=getchar()) != '\n' )
{
//是要申请新的空间吗?
if(9 == count%10)
{
pNew = (char*)malloc(sizeof(char) * (count+1+10));
//让旧的变成一个字符串
*pOld = '\0';
//把旧的拷贝到新的
strcpy(pNew,jiOld);
//旧的没用了
free(jiOld);
//新的就是旧的了
jiOld = pOld = pNew;
//来到最后一个
pOld += count;
}
*pOld++ = t;
count++;
}
*pOld = '\0';
return jiOld;
}