From e2b0599126aabb8e02e3a6136ddbe216fd442497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Mon, 2 Apr 2007 14:06:17 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20ensemble=20de=20fonctions=20permettant?= =?UTF-8?q?=20la=20gestion=20de=20cha=C3=AEnes=20de=20caract=C3=A8res?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/string.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 lib/string.c diff --git a/lib/string.c b/lib/string.c new file mode 100644 index 0000000..bfae71a --- /dev/null +++ b/lib/string.c @@ -0,0 +1,65 @@ +#include + +/* Compare 2 chaines de caractère et renvoie la premiere distance (diff) */ +s8 strcmp(const u8 *src,const u8 *des) +{ + register s8 result; + do + { + if ((result = *src - *des++) != 0) break; + } + while (*src++!=0); + return result; +} + + +/* Trouve la premiere occurence d'un caractère dans une chaine */ + +u8 * strchr(const u8 *src, u8 achar) +{ + for(; *src!= achar; ++src) + if (*src == 0) return 0; + return (u8*)src; +} + +/* Renvoie la taille de la chaine */ + +u32 strlen(const u8 *src) +{ + u32 size; + + for (size = 0; *(src+size) != 0; size++); + return size; +} + + +/* copie une chaine dans une autre */ +u8* strcpy(const u8 *src, u8 *des) +{ + u8 *temp = des; + while ((*des++ = *src++) != 0); + return temp; +} + + +/* copie une portion limité d'une chaine asciiZ*/ + +u8 *strncpy(const u8 *src,u8 *des,u32 count) +{ + u8 *temp = des; + while (count) { + if ((*temp = *src) != 0) src++; + temp++; + count--; + } + return des; +} + +/* concatene 2 chaines de caractère */ +u8 *strcat( const u8 *src,u8 *des) +{ + u8 *temp = des; + while (*des!=0) des++; + while ((*des++ = *src++) != 0); + return temp; +}