1
Fork 0
sm64/lib/src/string.c

32 lines
595 B
C
Raw Normal View History

2019-08-25 00:46:40 -04:00
#include "libultra_internal.h"
#include <string.h>
2019-11-03 14:36:27 -05:00
2019-08-25 00:46:40 -04:00
void *memcpy(void *dst, const void *src, size_t size) {
u8 *_dst = dst;
const u8 *_src = src;
while (size > 0) {
*_dst++ = *_src++;
size--;
}
return dst;
}
2020-12-03 14:26:38 -05:00
2019-11-03 14:36:27 -05:00
size_t strlen(const char *str) {
const u8 *ptr = (const u8 *) str;
2019-09-01 15:50:50 -04:00
while (*ptr) {
2019-08-25 00:46:40 -04:00
ptr++;
2019-09-01 15:50:50 -04:00
}
2019-11-03 14:36:27 -05:00
return (const char *) ptr - str;
2019-08-25 00:46:40 -04:00
}
2019-11-03 14:36:27 -05:00
char *strchr(const char *str, s32 ch) {
2019-08-25 00:46:40 -04:00
u8 c = ch;
2019-11-03 14:36:27 -05:00
while (*(u8 *)str != c) {
if (*(u8 *)str == 0) {
2019-08-25 00:46:40 -04:00
return NULL;
2019-09-01 15:50:50 -04:00
}
2019-08-25 00:46:40 -04:00
str++;
}
2019-11-03 14:36:27 -05:00
return (char *) str;
2019-08-25 00:46:40 -04:00
}