定义一个返回值为char*类型的函数
- 定义一个char类型字符(传入)
- 用malloc函数在堆区开辟一个新的空间存字符串
- 定义一个char*类型指针标记字符串首地址
- 定义一个char*类型字符串为空
- 定义一个int类型变量计数
- while循环,当传入字符c不等于‘\n’时
 字符c的值传入malloc定义的字符串,
 字符串地址后移
 计数
 当(统计次数+1)等于开辟空间大小时
 给字符串赋‘\0’
 增大空间
 给新字符串开辟增大后的空间
 调用strcpy函数将原有字符串(标记指针所指向)内容存到新的字符串中
 释放原字符串的空间
 标记指针指向新字符串的首地址
最后为字符串赋‘\0’
 返回 标记指针首地址
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char* Getstring();
int main()
{//char* p=Getstring();printf("%s\n",Getstring());return 0;
}
char* Getstring()
{char c;int size=5;char* s=(char *)malloc(size);char* pMark=s;char* news=NULL;int count=0;while((c=getchar())!='\n'){*s=c;s++;count++;if(count+1==size){*s='\0';size+=5;news=(char *)malloc(size);strcpy(news,pMark);free(pMark);pMark=news;s=news+count;}}*s='\0';return pMark;
}
随意输入一组字符串
 即得到该字符串
 在这里插入图片描述
 
















