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

 我来答
风若远去何人留
2017-03-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

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

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

以下是一个简单的思路, 以\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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式