char* and char[]

  • 61
  • 0

char* and char[]

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef char* String;

String create_string( size_t max_length ) 
{
        String ret = (String)malloc(max_length+1);
        return ret[ 0 ] = '\0', ret;
        
    
}

void release_string( String target ) 
{
        free(target);
}

void reverse (String str)
{
    //size_t = uint,因為大小不會有負數
    size_t left = 0, right = strlen(str)-1;
        for ( ; left < right; ++left, --right )
        {
            char temp = str[left];
            str[left] = str[right];
            str[right] = temp;
        }
    
}

int main()
{
    String str = create_string( 5 );
    strcpy( str, "12345" );
    reverse( str );
    puts( str );
    release_string( str );
    return 0;
}