2007-04-02 16:06:17 +02:00
|
|
|
|
#include <string.h>
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
2007-04-02 16:06:17 +02:00
|
|
|
|
/* Compare 2 chaines de caract<63>re et renvoie la premiere distance (diff) */
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
|
s8 strcmp(const u8 * src, const u8 * des)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
|
|
|
|
register s8 result;
|
2018-08-17 16:46:56 +02:00
|
|
|
|
do {
|
|
|
|
|
if ((result = *src - *des++) != 0)
|
|
|
|
|
break;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
}
|
2018-08-17 16:46:56 +02:00
|
|
|
|
while (*src++ != 0);
|
|
|
|
|
return result;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
2007-04-02 16:06:17 +02:00
|
|
|
|
|
|
|
|
|
/* Trouve la premiere occurence d'un caract<63>re dans une chaine */
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
|
u8 *strchr(const u8 * src, u8 achar)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
2018-08-17 16:46:56 +02:00
|
|
|
|
for (; *src != achar; ++src)
|
|
|
|
|
if (*src == 0)
|
|
|
|
|
return 0;
|
|
|
|
|
return (u8 *) src;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
2007-04-02 16:06:17 +02:00
|
|
|
|
/* Renvoie la taille de la chaine */
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
|
u32 strlen(const u8 * src)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
|
|
|
|
u32 size;
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
for (size = 0; *(src + size) != 0; size++) ;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
return size;
|
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
2007-04-02 16:06:17 +02:00
|
|
|
|
|
|
|
|
|
/* copie une chaine dans une autre */
|
2018-08-17 16:46:56 +02:00
|
|
|
|
u8 *strcpy(const u8 * src, u8 * des)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
|
|
|
|
u8 *temp = des;
|
2018-08-17 16:46:56 +02:00
|
|
|
|
while ((*des++ = *src++) != 0) ;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
return temp;
|
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
2007-04-02 16:06:17 +02:00
|
|
|
|
|
|
|
|
|
/* copie une portion limit<69> d'une chaine asciiZ*/
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
u8 *strncpy(const u8 * src, u8 * des, u32 count)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
|
|
|
|
u8 *temp = des;
|
|
|
|
|
while (count) {
|
2018-08-17 16:46:56 +02:00
|
|
|
|
if ((*temp = *src) != 0)
|
|
|
|
|
src++;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
temp++;
|
|
|
|
|
count--;
|
|
|
|
|
}
|
|
|
|
|
return des;
|
|
|
|
|
}
|
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
2007-04-02 16:06:17 +02:00
|
|
|
|
/* concatene 2 chaines de caract<63>re */
|
2018-08-17 16:46:56 +02:00
|
|
|
|
u8 *strcat(const u8 * src, u8 * des)
|
2007-04-02 16:06:17 +02:00
|
|
|
|
{
|
|
|
|
|
u8 *temp = des;
|
2018-08-17 16:46:56 +02:00
|
|
|
|
while (*des != 0)
|
|
|
|
|
des++;
|
|
|
|
|
while ((*des++ = *src++) != 0) ;
|
2007-04-02 16:06:17 +02:00
|
|
|
|
return temp;
|
|
|
|
|
}
|