#include "types.h"
#include "string.h"
size_t strlen(char *ptr)
{
char *ptr2 = ptr;
if ( ptr == NULL ) {
return 0;
}
while (*ptr2 != 0x0 ) {
ptr2 += 1;
return ptr2 - ptr;
void *memset(void *s, char c, size_t n)
char *d = (char *)s;
if ( s == NULL ) {
return NULL;
while ( (d - (char *)s) < n ) {
*d = c;
d += sizeof(char);
return s;
void *memcpy(void *dest, void *src, size_t n)
int i = 0;
char *d = (char *)dest;
char *s = (char *)src;
if ( d == NULL || s == NULL ) {
for ( i = 0 ; i < n ; i++ ) {
*d = *s;
d += 1;
s += 1;
return dest;
int strncat(char *dest, char *src, size_t n)
int c = 0;
if ( dest == NULL || src == NULL ) {
dest = (dest + strlen(dest));
while ( c++ < n ) {
*dest++ = *src++;
return c;
int strcmp(char *s1, char *s2)
int s1len = 0;
if ( s1 == NULL || s2 == NULL ) {
return 1;
s1len = strlen(s1);
if ( s1len != strlen(s2) ) {
while ( *s1 != '\0' ) {
if ( *s1 != *s2 ) {
s1 += sizeof(char);
s2 += sizeof(char);
int lstrip(char *s1, char *s2, char *strip)
int stripped = 0;
char *stripptr = strip;
if ( s1 == NULL || s2 == NULL || strip == NULL ) {
while ( *s1 != 0 ) {
if ( stripptr != NULL ) {
for ( stripptr = strip; *stripptr != 0; stripptr += 1) {
if ( *s1 == *stripptr ) {
stripped += 1;
goto _lstrip_outer_continue;
stripptr = NULL;
*s2 = *s1;
s2 += 1;
_lstrip_outer_continue:
s1 += 1;
return stripped;
int rstrip(char *s1, char *s2, char *strip)
char *rs1 = s1;
rs1 += strlen(s1)-1;
while ( rs1 >= s1 ) {
if ( *rs1 == *stripptr ) {
rs1 -= 1;
goto _rstrip_continue;
break;
_rstrip_continue:
;
while (s1 <= rs1) {
*s2 = 0;