#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *GetString();
int main()
{
char *p = GetString();
return 0;
}
char *GetString()
{
char c;
int size = 5;
char *str = (char*)malloc(size);
char *pMark = str;
char *newstr = NULL;
int count = 0;
//从输入缓冲区中取字符
while((c = getchar()) != '\n')
{
//把取下来的字符放到字符数组里
*str = c;
//指针后移
str++;
//计数累计
count++;
//判断是否能放下
if(count + 1 == size)
{
//放不下 变成字符串
*str = '\0';
//申请空间变量变大
size += 5;
//申请新的空间
newstr = (char*)malloc(size);
//把老字符串拷贝到新空间里
strcpy_s(newstr,size,pMark);
//释放老空间
free(pMark);
//标记指向新的首地址
pMark = newstr;
//str指向新字符串结尾位置
str = newstr + count;
}
}
//结尾加'\0'
*str = '\0';
return pMark;
}
getstring
最新推荐文章于 2019-10-22 20:39:12 发布