#include <stdio.h>
#include <stdlib.h>
typedef struct
{
    char * ch;
    int length;
}Str;   //变长分配存储表示

int strassign(Str * str,char * ch){
    if(str->ch){
        free(str->ch);
    }
    int len=0;
    char * c=ch;
    while (*c)
    {
        ++len;
        ++c;
    }
    if (len==0)
    {
        str->ch=NULL;
        str->length=0;
        return 1;
    }
    else{
        str->ch=(char *)malloc(sizeof(char)*(len+1));
        if(str->ch==NULL){
            return 0;
        }
        else{
            c=ch;
            for(int i=0;i<=len;++i,++c){
                str->ch[i]=*c;
            }
            str->length=len;
            return 1;
        }
    }

}

int main(void){
    Str str;
    strassign(&str,"hello world");
    char * c=str.ch;
    while (*c)
    {
        printf("%c",*c);
        ++c;
    }
    
    return 0;
}
posted on 2021-10-07 16:36  派大星0001  阅读(37)  评论(0)    收藏  举报