C动态字符串,动态开辟内存空间相关 malloc realloc 用法

来源:互联网 发布:小米手机只能用2g网络 编辑:程序博客网 时间:2024/05/16 09:21

源自今天做C语言的一道题目:

(《c语言程序设计与基础》  武汉大学出版社 p256 6)编写程序将一个不确定位数的正整数进行三位分节后输出,如输入1234567, 输出1,234,567

#include <stdio.h>#include <stdlib.h>int main() {      char cc,*c = (char *)malloc(sizeof(char));    int a = 0;        while((cc = getchar()) != '\n')    {        c[a]=cc;        a++;        c=(char*)realloc(c,(a+1)*sizeof(char));        if(c==NULL)        {            printf("error");            break;        }            }    int b= 3-(a%3);    for(int i=0;i<a;i++)    {        printf("%c",*(c+i));        b++;        if(b>=3&&i!=a-1)        {            b=0;            printf(",");        }    }    free(c);    c = NULL;    return 0;}



也不知道有没有其他问题,放上来让大家参考一下吧,个人感觉比书上答案写的好一点。

1 0
原创粉丝点击