Added x_string utility functions

Added implementation for string length
Added implementation for string copy
Added implementation for string concatination
This commit is contained in:
xavi 2024-08-01 19:39:24 -07:00
parent 8ee3a304bb
commit 82fd8556ab
2 changed files with 68 additions and 0 deletions

60
x_string/x_string.c Normal file
View File

@ -0,0 +1,60 @@
#include <stdio.h>
#include <stdlib.h>
int x_strlen(char* str){
char* ptr = str;
while(*ptr != '\0'){
ptr++;
}
return ptr - str;
}
void x_strcpy(char* dest, char* src, const int size_dest){
char* dest_ptr = dest;
char* src_ptr = src;
int i = 0;
while(*src_ptr != '\0'){
if (i >= size_dest){
fprintf(stderr, "Error: x_strcpy\nSource string exeeds destination memory\n");
exit(1);
}
*dest_ptr = *src_ptr;
dest_ptr++;
src_ptr++;
i++;
}
}
char* x_strconcat(char* str1, char* str2){
char* new_string;
int len1 = x_strlen(str1);
int len2 = x_strlen(str2);
int new_length = len1 + len2;
new_string = malloc( sizeof(*new_string) * new_length );
x_strcpy(new_string, str1, new_length);
x_strcpy(&new_string[len1], str2, new_length - len1);
return new_string;
}
int main(){
char x[] = "hlo";
char y[] = "world";
//printf("%d\n", x_strlen(x));
//printf("%d\n", x_strlen(x));
char* z = x_strconcat(x,y);
puts(z);
//free(z);
return 0;
}

8
x_string/x_string.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef X_STRING_H
#define X_STRING_H
int x_strlen(char*);
void x_strcpy(char*, char*, const int);
char* x_strconcat(char*, char*);
#endif