7 KGString* kg_string_new(char *initString){
9 tmp = (KGString *)malloc(sizeof(KGString));
10 if(initString == NULL){
12 tmp->str = (char *)malloc(0);
15 tmp->len = strlen(initString);
16 tmp->str = (char *)malloc(tmp->len + 1);
17 strcpy(tmp->str, initString);
22 KGString* kg_string_set_size(KGString *target, int newSize){
23 target->len = newSize;
24 target->str = (char *)realloc((char *)target->str, target->len + 1);
25 target->str[target->len] = '\0';
29 KGString* kg_string_append_len(KGString *target, char *appendString, int length){
30 target->len = target->len + length;
31 target->str = (char *)realloc((char *)target->str, target->len + 1);
32 strncat(target->str, appendString, length);
36 KGString* kg_string_append(KGString *target, char *appendString){
37 target->len = target->len + strlen(appendString);
38 target->str = (char *)realloc((char *)target->str, target->len + 1);
39 strcat(target->str, appendString);
43 KGString* kg_string_erase(KGString *target, int startPoint, int length){
46 oldLength = target->len;
47 target->len = target->len - length;
48 tmp = (char *)malloc(target->len + 1);
49 strncpy(tmp, target->str, startPoint);
50 tmp[startPoint] = '\0';
51 if(oldLength > startPoint + length) strcat(tmp, target->str + startPoint + length);
52 target->str = (char *)realloc((char *)target->str, target->len + 1);
53 strcpy(target->str, tmp);
58 KGString* kg_string_assign(KGString *target, char *assignString){
59 target->len = strlen(assignString);
60 target->str = (char *)realloc((char *)target->str, target->len + 1);
61 strcpy(target->str, assignString);