#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* GetString();
int main()
{
char*p=GetString();
return 0;
}
char* GetString()
{
//1、先申请一个字符数组
int size=5;
char*str=(char*)malloc(size);
char c;
int count=0;
char* newstr=NULL;
char* pMark=str;
//2、循环地从输入缓冲区中取字符
while((c =getchar()) != '\n')
{
//把取到的字符放在字符数组里
*str =c;
//计数一共取了几个
count++;
str++;
//判断是否能放下
if(count+1 == size)
{
//放不下
//把字符数组变成字符串
*str='\0';
//申请一个更大的字符数组
size+=5;
newstr=(char*)malloc(size);
//把老字符数组拷贝到新字符数组中
strcpy_s(newstr,size,pMark);
//释放老字符数组
free(pMark);
//找到新字符数组的\0位置继续放字符
str=newstr+count;
pMark=newstr;
}
//3、赋'\0'
*str='\0';
}
return pMark;
}
GetString()
最新推荐文章于 2022-07-27 21:41:48 发布