编写一个linux C语言程序 接受输入一个任意长度的字符串并输出(使用malloc和realloc函数)

2025-03-23 18:54:21
推荐回答(1个)
回答1:

#include 
#include 
#define CHUNKSIZE 100
int main()
{
    char *string;
    int i=0,c;
    string=malloc(sizeof(char)*CHUNKSIZE+1);
    if(string==NULL)
    {
        printf("out of memory");
        return 1;
    }
    while((c=getchar())!=EOF)
    {
        string[i]=c;
        i++;
        if(i%CHUNKSIZE==0)
        {
            string=realloc(string,sizeof(char)*CHUNKSIZE*(i/CHUNKSIZE+1)+1);
            if(string==NULL)
            {
                printf("out of memory");
                return 1;
            }
        }
    }
    printf("\n\norgin string is:\n%s\n",string);
    free(string);
    return 0;
}

输入任意长度字符串,CTRL+D结束输入