如何输入任意长度的字符串?用c语言来写,不用C++和String类

如题所述

要输入任意长度字符串,就需要使用动态内存

也就是逐个元素读入,当不够的时候重新分配。 

以下是一个简单的思路, 以\n作为字符串结束标记。 

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int len=100;
    char *p=NULL;
    int cnt=0,c;
    p = (char *)malloc(len);
    while((c = getchar())!='\n')
    {
        p[cnt++] = c;
        if(cnt >= len-1)
        {
            len+=100;
            p=(char *)realloc(p, len);//不够,重新分配内存。
        }
    }
   p[cnt] = 0;
   puts(p);
   free(p);
   return 0;
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网