#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; }