feat: ajout de fonctions dans la librairie string
This commit is contained in:
parent
56da8273e8
commit
49a4bd4640
|
@ -3,7 +3,7 @@ all: cos2000.img
|
|||
cos2000.img:
|
||||
(dd if=/dev/zero of=cos2000.img count=2880 bs=512)
|
||||
(mkfs.msdos -F 12 -n "COS2000" cos2000.img)
|
||||
(mkdir ./mnt)
|
||||
(mkdir ./mnt -p)
|
||||
(fusefat cos2000.img ./mnt -o rw+)
|
||||
(cp ../boot/loader.sys ./mnt/)
|
||||
(cp ../system/system.sys ./mnt/;sync)
|
||||
|
|
|
@ -5,4 +5,10 @@ u32 strlen(const u8 *src);
|
|||
u8 *strchr(const u8 *src, u8 achar);
|
||||
u8 *strncpy(const u8 *src,u8 *des,u32 count);
|
||||
u8 *strcat(const u8 *src,u8 *des);
|
||||
u8* strcpy(const u8 *src, u8 *des);
|
||||
u8 *strcpy(const u8 *src, u8 *des);
|
||||
void strtolower(u8 *src);
|
||||
void strtoupper(u8 *src);
|
||||
void stronecase(u8 *src);
|
||||
void strsetlen(u8 *src, u8 size);
|
||||
void strinvert(u8 *src);
|
||||
void strreplace(u8 *src, u8 search, u8 replaced);
|
||||
|
|
99
lib/string.c
99
lib/string.c
|
@ -68,6 +68,7 @@ u8 *strncpy(const u8 * src, u8 * des, u32 count)
|
|||
/******************************************************************************/
|
||||
|
||||
/* concatene 2 chaines de caractère */
|
||||
|
||||
u8 *strcat(const u8 * src, u8 * des)
|
||||
{
|
||||
u8 *temp = des;
|
||||
|
@ -76,3 +77,101 @@ u8 *strcat(const u8 * src, u8 * des)
|
|||
while ((*des++ = *src++) != 0) ;
|
||||
return temp;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Met en minuscule */
|
||||
|
||||
void strtolower(u8 * src)
|
||||
{
|
||||
while (*src != 0) {
|
||||
if ((*src >= 'A') && (*src <= 'Z'))
|
||||
*src=*src+'a'-'A';
|
||||
src++;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Met en majuscule */
|
||||
|
||||
void strtoupper(u8 * src)
|
||||
{
|
||||
while (*src != 0) {
|
||||
if ((*src >= 'a') && (*src <= 'z'))
|
||||
*src=*src-('a'-'A');
|
||||
src++;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* inverse la casse */
|
||||
|
||||
void strinvertcase(u8 * src)
|
||||
{
|
||||
while (*src != 0) {
|
||||
if ((*src >= 'A') && (*src <= 'Z'))
|
||||
*src=*src+'a'-'A';
|
||||
else if ((*src >= 'a') && (*src <= 'z'))
|
||||
*src=*src-('a'-'A');
|
||||
src++;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Met une majuscule et met le reste en minuscule */
|
||||
|
||||
void stronecase(u8 * src)
|
||||
{
|
||||
if ((*src >= 'a') && (*src <= 'z'))
|
||||
*src=*src-('a'-'A');
|
||||
while (*src != 0) {
|
||||
src++;
|
||||
if ((*src >= 'A') && (*src <= 'Z'))
|
||||
*src=*src+'a'-'A';
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Fixe la taille de la chaine */
|
||||
|
||||
void strsetlen(u8 * src, u8 size)
|
||||
{
|
||||
*(src+size)='\000';
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Inverse la chaine */
|
||||
|
||||
void strinvert(u8 *src)
|
||||
{
|
||||
u8 *dst=src+strlen(src)-1;
|
||||
while (src < dst) {
|
||||
u8 char1=*dst;
|
||||
u8 char2=*src;
|
||||
*dst=char2;
|
||||
*src=char1;
|
||||
src++;
|
||||
dst--;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Remplace tout les caractères rechercher par un autre */
|
||||
|
||||
void strreplace(u8 *src, u8 search, u8 replaced)
|
||||
{
|
||||
u8 *pos=strchr(src, search);
|
||||
while (pos!=0)
|
||||
{
|
||||
*pos=replaced;
|
||||
pos=strchr(src, search);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -80,6 +80,15 @@ int main(void)
|
|||
cpu.stepping, cpu.models, cpu.family, &cpu.detectedname,
|
||||
&cpu.techs);
|
||||
ok();
|
||||
|
||||
u8 test[]="ceCI est UN(une) tes1\000";
|
||||
u8 test2[]="ceCI est UN(une) tes2!\000";
|
||||
printf(&test);
|
||||
strreplace(&test, 'e', 'q');
|
||||
strreplace(&test2, '(', '[');
|
||||
printf(&test);
|
||||
printf(&test2);
|
||||
|
||||
while (1) {
|
||||
key = waitascii();
|
||||
putchar(key);
|
||||
|
|
Loading…
Reference in New Issue