定义一个返回值为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+