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:
|
cos2000.img:
|
||||||
(dd if=/dev/zero of=cos2000.img count=2880 bs=512)
|
(dd if=/dev/zero of=cos2000.img count=2880 bs=512)
|
||||||
(mkfs.msdos -F 12 -n "COS2000" cos2000.img)
|
(mkfs.msdos -F 12 -n "COS2000" cos2000.img)
|
||||||
(mkdir ./mnt)
|
(mkdir ./mnt -p)
|
||||||
(fusefat cos2000.img ./mnt -o rw+)
|
(fusefat cos2000.img ./mnt -o rw+)
|
||||||
(cp ../boot/loader.sys ./mnt/)
|
(cp ../boot/loader.sys ./mnt/)
|
||||||
(cp ../system/system.sys ./mnt/;sync)
|
(cp ../system/system.sys ./mnt/;sync)
|
||||||
|
|
|
@ -5,4 +5,10 @@ u32 strlen(const u8 *src);
|
||||||
u8 *strchr(const u8 *src, u8 achar);
|
u8 *strchr(const u8 *src, u8 achar);
|
||||||
u8 *strncpy(const u8 *src,u8 *des,u32 count);
|
u8 *strncpy(const u8 *src,u8 *des,u32 count);
|
||||||
u8 *strcat(const u8 *src,u8 *des);
|
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 */
|
/* concatene 2 chaines de caractère */
|
||||||
|
|
||||||
u8 *strcat(const u8 * src, u8 * des)
|
u8 *strcat(const u8 * src, u8 * des)
|
||||||
{
|
{
|
||||||
u8 *temp = des;
|
u8 *temp = des;
|
||||||
|
@ -76,3 +77,101 @@ u8 *strcat(const u8 * src, u8 * des)
|
||||||
while ((*des++ = *src++) != 0) ;
|
while ((*des++ = *src++) != 0) ;
|
||||||
return temp;
|
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.stepping, cpu.models, cpu.family, &cpu.detectedname,
|
||||||
&cpu.techs);
|
&cpu.techs);
|
||||||
ok();
|
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) {
|
while (1) {
|
||||||
key = waitascii();
|
key = waitascii();
|
||||||
putchar(key);
|
putchar(key);
|
||||||
|
|
Loading…
Reference in New Issue