How to represent a string using struct in C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct {
   char*  m_pString ;
   size_t m_iSize ;
} String;

String* String_new(int size) {
   String* pString = malloc(sizeof(String));

   pString->m_iSize = size;
   pString->m_pString = malloc((pString->m_iSize + 1) * sizeof(char));
   pString->m_pString[0] = 0;

   return pString ;
}

void String_delete(String* p) {
    free(p->m_pString);
    free(p);
}

int main(void)
{
    String *p = String_new(16);
    
    strcpy(p->m_pString, "c programming");
    
    puts(p->m_pString);
    printf("%ld\n", strlen(p->m_pString));
    printf("%ld\n", p->m_iSize);
    
    String_delete(p);
    
    return 0;
}
 
 
 
/*
run:
 
c programming
13
16
 
*/

 



answered Mar 7, 2024 by avibootz
...