feat: ensemble de fonctions permettant la gestion de chaînes de caractères

This commit is contained in:
Nicolas Hordé 2007-04-02 14:06:17 +00:00
parent 04a822b145
commit e2b0599126
1 changed files with 65 additions and 0 deletions

65
lib/string.c Normal file
View File

@ -0,0 +1,65 @@
#include <string.h>
/* 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;
}