[c] wd_string v2.2

Soyez le premier à donner votre avis sur cette source.

Vue 6 628 fois - Téléchargée 3 345 fois

Description

Fonctions de gestion des chaînes de caractères en langage C.

Fonction Inverse : Renvoie pour chaque caractère d'une chaîne de caractères le complément à 255.
Fonction ChaineCommencePar : Vérifie si une chaîne de caractères commence par une chaîne de caractères spécifique.
Fonction ChaineFinitPar : Vérifie si une chaîne de caractères se termine par une chaîne de caractères spécifique.
Fonction AnsiVersOem : Convertit une chaîne de caractères au format ANSI (Windows) en une chaîne de caractères au format OEM (DOS).
Fonction Asc : Renvoie le code ASCII d'un caractère (format ANSI de Windows).
Fonction Caract : Renvoie le caractère correspondant au code ASCII (format ANSI de Windows).
Fonction ChaineCompare : Compare deux chaînes de caractères dans l'ordre des caractères ASCII ou dans l'ordre lexicographique.
Fonction ChaineFormate : Formate une chaîne de caractères selon les critères choisis.
Fonction ChaineOccurrence : Calcule le nombre d'occurrences dans une chaîne de caractères.
Fonction Droite : Extrait la partie droite d'une chaîne de caractères (c'est-à-dire les X derniers caractères).
Fonction Gauche : Extrait la partie gauche d'une chaîne de caractères (c'est-à-dire les X premiers caractères).
Fonction Majuscule : Convertit une chaîne de caractères en majuscules.
Fonction Milieu : Extrait une partie d'une chaîne de caractères à partir d'une position donnée.
Fonction Minuscule : Convertit une chaîne de caractères en minuscule.
Fonction OemVersAnsi : Convertit une chaîne de caractères au format OEM (DOS) en une chaîne de caractères au format ANSI (Windows).
Fonction Position : Recherche la position d'une chaîne de caractères dans une chaîne de caractères.
Fonction PositionOccurrence : Recherche la Xème position d'une occurrence dans une chaîne de caractères.
Fonction Remplace : Remplace toutes les occurrences d'un mot dans une chaîne de caractères par un autre mot.
Fonction SansAccent : Remplace les caractères accentués d'une chaîne de caractères par des caractères non accentués.
Fonction SansEspace : Renvoie une chaîne de caractères sans les espaces situés à gauche et à droite.
Fonction Taille : Renvoie la taille d'une chaîne de caractères.
Fonction Val : Renvoie la valeur numérique d'une chaîne de caractères.

Source / Exemple :


int main()
{
    char *Ma_Chaine = "Hello World!";
    char *Ma_Chaine_ANSI = "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème.";
    char *Ma_Chaine_OEM = "Cet ?t? par la fen?tre, le soleil br?le. Il me faut de la cr?me.";
    char Ma_Chaine2[100];
    long Ma_Position = 0;

    printf("%ld\n",Taille(Ma_Chaine)); // Renvoie 12
    printf("%ld\n",Taille("Hello World!")); // Renvoie 12
    printf("%ld\n",Taille("")); // Renvoie 0

    printf("%s\n",Gauche(Ma_Chaine,5)); // Renvoie "Hello"
    printf("%s\n",Gauche(Ma_Chaine,50)); // Renvoie "Hello World!"
    printf("%s\n",Gauche("Hello World!",5)); // Renvoie "Hello"
    printf("%s\n",Gauche("Hello World!     ",0)); // Renvoie "Hello World!"
    printf("%s\n",Gauche(Gauche("Hello World!     ",0),5)); // Renvoie "Hello"
    printf("%s\n",Gauche("",10)); // Renvoie ""
    printf("%s\n",Gauche("          ",5)); // Renvoie "     "
    printf("%s\n",Gauche("          ",0)); // Renvoie ""
    printf("%s\n",Gauche("Hello World!     ",-50)); // Renvoie EOT (0x04)

    printf("%s\n",Droite(Ma_Chaine,6)); // Renvoie "World!"
    printf("%s\n",Droite(Ma_Chaine,50)); // Renvoie "Hello World!"
    printf("%s\n",Droite("Hello World!",6)); // Renvoie "World!"
    printf("%s\n",Droite("     Hello World!",0)); // Renvoie "Hello World!"
    printf("%s\n",Droite(Droite("     Hello World!",0),6)); // Renvoie "World!"
    printf("%s\n",Droite("",10)); // Renvoie ""
    printf("%s\n",Droite("          ",5)); // Renvoie "     "
    printf("%s\n",Droite("          ",0)); // Renvoie ""
    printf("%s\n",Droite("     Hello World!",-50)); // Renvoie EOT (0x04)

    printf("%s\n",Gauche(Droite("   Hello World!   ",0),0)); // Renvoie "Hello World!"

    printf("%s\n",Milieu("Hello World!",0,5)); // Renvoie "Hello"
    printf("%s\n",Milieu(Ma_Chaine,1,5)); // Renvoie "Hello"
    printf("%s\n",Milieu("Hello World!",7,6)); // Renvoie "World!"
    printf("%s\n",Milieu(Ma_Chaine,7,50)); // Renvoie "World!"
    printf("%s\n",Milieu("Hello World!",50,1)); // Renvoie ""
    printf("%s\n",Milieu(Milieu(Ma_Chaine,7,6),6,1)); // Renvoie "!"
    printf("%s\n",Milieu("",0,1)); // Renvoie ""
    printf("%s\n",Milieu("Hello World!",-50,5)); // Renvoie EOT (0x04)
    printf("%s\n",Milieu("Hello World!",0,-50)); // Renvoie EOT (0x04)
    printf("%s\n",Milieu("Hello World!",-50,-50)); // Renvoie EOT (0x04)

    printf("%s\n",Milieu(Gauche(Droite("   Hello World!   ",0),0),7,6)); // Renvoie "World!"

    printf("%d\n",Asc(Ma_Chaine)); // Renvoie 72
    printf("%d\n",Asc("Hello World!")); // Renvoie 72
    printf("%d\n",Asc(Milieu(Milieu(Ma_Chaine,7,6),6,1))); // Renvoie 33
    printf("%d\n",Asc("?")); // Renvoie 128
    printf("%d\n",Asc("é")); // Renvoie 233
    printf("%d\n",Asc("")); // Renvoie 0

    printf("%s\n",Caract(72)); // Renvoie "H"
    printf("%s\n",Caract(128)); // Renvoie "?"(ANSI) "Ç"(OEM)
    printf("%s\n",Caract(233)); // Renvoie "é"(ANSI) "Ú"(OEM)
    printf("%s\n",Caract(0)); // Renvoie ""

    printf("%s\n",Caract(Asc("?"))); // Renvoie "?"(ANSI) "Ç"(OEM)
    printf("%s\n",Caract(Asc(Ma_Chaine))); // Renvoie "H"
    printf("%s\n",Caract(Asc(Milieu(Milieu(Ma_Chaine,7,6),6,1)))); // Renvoie "!"
    printf("%d\n",Asc(Caract(128))); // Renvoie 128
    printf("%d\n",Asc(Caract(72))); // Renvoie 72

    printf("%s\n",AnsiVersOem(Ma_Chaine)); // Renvoie "Hello World!"
    printf("%s\n",AnsiVersOem("")); // Renvoie ""
    printf("%s\n",AnsiVersOem("H?llo World!?")); // Renvoie "H_llo World!T"

    printf("%s\n",Ma_Chaine_ANSI);
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (ANSI)
    // Renvoie "Cet ÚtÚ par la fenÛtre, le soleil br¹le. Il me faut de la crÞme." (OEM)
    printf("%s\n",AnsiVersOem(Ma_Chaine_ANSI));
    // Renvoie "Cet ?t? par la fen?tre, le soleil br?le. Il me faut de la cr?me." (ANSI)
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (OEM)

    printf("%s\n",OemVersAnsi(Ma_Chaine)); // Renvoie "Hello World!"
    printf("%s\n",OemVersAnsi("")); // Renvoie ""
    printf("%s\n",OemVersAnsi("H?llo World!?")); // Renvoie "HÇllo World!Ö" (ANSI) "HÃllo World!Í" (OEM)

    printf("%s\n",Ma_Chaine_OEM);
    // Renvoie "Cet ?t? par la fen?tre, le soleil br?le. Il me faut de la cr?me." (ANSI)
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (OEM)
    printf("%s\n",OemVersAnsi(Ma_Chaine_OEM));
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (ANSI)
    // Renvoie "Cet ÚtÚ par la fenÛtre, le soleil br¹le. Il me faut de la crÞme." (OEM)

    printf("%s\n",OemVersAnsi(AnsiVersOem(Ma_Chaine_ANSI)));
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (ANSI)
    // Renvoie "Cet ÚtÚ par la fenÛtre, le soleil br¹le. Il me faut de la crÞme." (OEM)
    printf("%s\n",AnsiVersOem(OemVersAnsi(Ma_Chaine_OEM)));
    // Renvoie "Cet ?t? par la fen?tre, le soleil br?le. Il me faut de la cr?me." (ANSI)
    // Renvoie "Cet été par la fenêtre, le soleil brûle. Il me faut de la crème." (OEM)

    printf("%s\n",SansEspace("   Hello World!   ")); // Renvoie "Hello World!"
    printf("%s\n",SansEspace("")); // Renvoie ""
    printf("%s\n",SansEspace("    ")); // Renvoie ""

    printf("%s\n",SansAccent(Ma_Chaine_ANSI)); // Renvoie "Cet ete par la fenetre, le soleil brule. Il me faut de la creme."
    printf("%s\n",SansAccent(OemVersAnsi(Ma_Chaine_OEM))); // Renvoie "Cet ete par la fenetre, le soleil brule. Il me faut de la creme."
    printf("%s\n",SansAccent("")); // Renvoie ""

    printf("%s\n",Majuscule("Hello World!")); // Renvoie "HELLO WORLD!"
    printf("%s\n",Majuscule(Ma_Chaine_ANSI));
    // Renvoie "CET ÉTÉ PAR LA FENÊTRE, LE SOLEIL BRÛLE. IL ME FAUT DE LA CRÈME." (ANSI)
    // Renvoie "CET +T+ PAR LA FEN-TRE, LE SOLEIL BRŠLE. IL ME FAUT DE LA CR+ME." (OEM)
    printf("%s\n",Majuscule("")); // Renvoie ""
    printf("%s\n",SansAccent(Majuscule(Ma_Chaine_ANSI))); // Renvoie "CET ETE PAR LA FENETRE, LE SOLEIL BRULE. IL ME FAUT DE LA CREME."
    printf("%s\n",AnsiVersOem(Majuscule(OemVersAnsi(Ma_Chaine_OEM))));
    // Renvoie "CET  T  PAR LA FENÒTRE, LE SOLEIL BRêLE. IL ME FAUT DE LA CRÔME." (ANSI)
    // Renvoie "CET ÉTÉ PAR LA FENÊTRE, LE SOLEIL BRÛLE. IL ME FAUT DE LA CRÈME." (OEM)

    printf("%s\n",Minuscule("HELLO WORLD!")); // Renvoie "hello world!"
    printf("%s\n",Minuscule(Majuscule(Ma_Chaine_ANSI)));
    // Renvoie "cet été par la fenêtre, le soleil brûle. il me faut de la crème." (ANSI)
    // Renvoie "cet ÚtÚ par la fenÛtre, le soleil br¹le. il me faut de la crÞme." (OEM)
    printf("%s\n",Minuscule("")); // Renvoie ""
    printf("%s\n",Minuscule(SansAccent(Majuscule(Ma_Chaine_ANSI)))); // Renvoie "cet ete par la fenetre, le soleil brule. il me faut de la creme."
    printf("%s\n",AnsiVersOem(Minuscule(Majuscule(OemVersAnsi(Ma_Chaine_OEM)))));
    // Renvoie "cet ?t? par la fen?tre, le soleil br?le. il me faut de la cr?me." (ANSI)
    // Renvoie "cet été par la fenêtre, le soleil brûle. il me faut de la crème." (OEM)

    sprintf(Ma_Chaine2," %c%c%c H,e;l:l?o W-o_r?l.d! %c%c%c%c%c",11,12,9,9,11,12,10,13);

    printf("%s\n",ChaineFormate("Hello World!",ccNormal)); // Renvoie "Hello World!"
    printf("%s\n",ChaineFormate("   Hello World!   ",ccNormal)); // Renvoie "   Hello World!   "
    printf("%s",ChaineFormate(Ma_Chaine2,ccNormal)); // Renvoie "      H,e;l:l?o W-o_r?l.d!     "

    printf("%s\n",ChaineFormate("   Hello World!   ",ccSansEspace)); // Renvoie "Hello World!"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccSansEspace)); // Renvoie "H,e;l:l?o W-o_r?l.d!"
    printf("%s\n",ChaineFormate("",ccSansEspace)); // Renvoie ""
    printf("%s\n",ChaineFormate("    ",ccSansEspace)); // Renvoie ""

    printf("%s\n",ChaineFormate(Ma_Chaine_ANSI,ccSansAccent)); // Renvoie "Cet ete par la fenetre, le soleil brule. Il me faut de la creme."
    printf("%s\n",ChaineFormate(OemVersAnsi(Ma_Chaine_OEM),ccSansAccent)); // Renvoie "Cet ete par la fenetre, le soleil brule. Il me faut de la creme."
    printf("%s\n",ChaineFormate("",ccSansAccent)); // Renvoie ""

    printf("%s\n",ChaineFormate("Hello World!",ccMajuscule)); // Renvoie "HELLO WORLD!"
    printf("%s\n",ChaineFormate(Ma_Chaine_ANSI,ccMajuscule));
    // Renvoie "CET ÉTÉ PAR LA FENÊTRE, LE SOLEIL BRÛLE. IL ME FAUT DE LA CRÈME." (ANSI)
    // Renvoie "CET +T+ PAR LA FEN-TRE, LE SOLEIL BRŠLE. IL ME FAUT DE LA CR+ME." (OEM)
    printf("%s\n",ChaineFormate("",ccMajuscule)); // Renvoie ""
    printf("%s\n",AnsiVersOem(ChaineFormate(OemVersAnsi(Ma_Chaine_OEM),ccMajuscule)));
    // Renvoie "CET  T  PAR LA FENÒTRE, LE SOLEIL BRêLE. IL ME FAUT DE LA CRÔME." (ANSI)
    // Renvoie "CET ÉTÉ PAR LA FENÊTRE, LE SOLEIL BRÛLE. IL ME FAUT DE LA CRÈME." (OEM)

    printf("%s\n",ChaineFormate(ChaineFormate(Ma_Chaine_ANSI,ccMajuscule),ccSansAccent)); // Renvoie "CET ETE PAR LA FENETRE, LE SOLEIL BRULE. IL ME FAUT DE LA CREME."
    printf("%s\n",ChaineFormate(Ma_Chaine_ANSI,ccMajuscule + ccSansAccent)); // Renvoie "CET ETE PAR LA FENETRE, LE SOLEIL BRULE. IL ME FAUT DE LA CREME."

    printf("%s\n",ChaineFormate("HELLO WORLD!",ccMinuscule)); // Renvoie "hello world!"
    printf("%s\n",ChaineFormate(ChaineFormate(Ma_Chaine_ANSI,ccMajuscule),ccMinuscule));
    // Renvoie "cet été par la fenêtre, le soleil brûle. il me faut de la crème." (ANSI)
    // Renvoie "cet ÚtÚ par la fenÛtre, le soleil br¹le. il me faut de la crÞme." (OEM)
    printf("%s\n",ChaineFormate("",ccMinuscule)); // Renvoie ""
    printf("%s\n",ChaineFormate(ChaineFormate(Ma_Chaine_ANSI,ccMajuscule + ccSansAccent),ccMinuscule)); // Renvoie "cet ete par la fenetre, le soleil brule. il me faut de la creme."
    printf("%s\n",AnsiVersOem(ChaineFormate(ChaineFormate(OemVersAnsi(Ma_Chaine_OEM),ccMajuscule),ccMinuscule)));
    // Renvoie "cet ?t? par la fen?tre, le soleil br?le. il me faut de la cr?me." (ANSI)
    // Renvoie "cet été par la fenêtre, le soleil brûle. il me faut de la crème." (OEM)

    printf("%s\n",ChaineFormate("Hello World!",ccSansPonctuationNiEspace)); // Renvoie "HelloWorld"
    printf("%s\n",ChaineFormate("   Hello World!   ",ccSansPonctuationNiEspace)); // Renvoie "HelloWorld"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccSansPonctuationNiEspace)); // Renvoie "HelloWorld"
    printf("%s\n",ChaineFormate("",ccSansPonctuationNiEspace)); // Renvoie ""
    printf("%s\n",ChaineFormate("    ",ccSansPonctuationNiEspace)); // Renvoie ""

    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMajuscule + ccSansEspace)); // Renvoie "H,E;L:L?O W-O_R?L.D!"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMajuscule + ccSansPonctuationNiEspace)); // Renvoie "HELLOWORLD"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMajuscule + ccSansEspace + ccSansPonctuationNiEspace)); // Renvoie "HELLOWORLD"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMinuscule + ccSansEspace)); // Renvoie "h,e;l:l?o w-o_r?l.d!"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMinuscule + ccSansPonctuationNiEspace)); // Renvoie "helloworld"
    printf("%s\n",ChaineFormate(Ma_Chaine2,ccMinuscule + ccSansEspace + ccSansPonctuationNiEspace)); // Renvoie "helloworld"

    printf("%s\n",ChaineFormate(Ma_Chaine_ANSI,ccMajuscule + ccSansAccent + ccSansEspace + ccSansPonctuationNiEspace));
    // Renvoie "CETETEPARLAFENETRELESOLEILBRULEILMEFAUTDELACREME"
    printf("%s\n",ChaineFormate(Ma_Chaine_ANSI,ccMinuscule + ccSansAccent + ccSansEspace + ccSansPonctuationNiEspace));
    // Renvoie "ceteteparlafenetrelesoleilbruleilmefautdelacreme"

    printf("%f\n",Val("45",10)); // Renvoie 45.000000
    printf("%f\n",Val("45",'d')); // Renvoie 45.000000
    printf("%f\n",Val("45",0)); // Renvoie 45.000000
    printf("%f\n",Val("45",37)); // Renvoie 45.000000
    printf("%.10f\n",Val("3.1415926535",'d')); // Renvoie 3.1415926535
    printf("%.10f\n",Val("3,1415926535",'d')); // Renvoie 3.0000000000
    printf("%f\n",Val("0.5e-2",'d')); // Renvoie 0.005000
    printf("%f\n",Val("FF",'d')); // Renvoie 0.000000
    printf("%f\n",Val("3+3",'d')); // Renvoie 3.000000

    printf("%f\n",Val("FF",16)); // Renvoie 255.000000
    printf("%f\n",Val("FF",'x')); // Renvoie 255.000000
    printf("%f\n",Val("0xFF",'x')); // Renvoie 255.000000
    printf("%f\n",Val("ff",16)); // Renvoie 255.000000
    printf("%f\n",Val("3fF",16)); // Renvoie 1023.000000

    printf("%f\n",Val("4321",'o')); // Renvoie 2257.000000
    printf("%f\n",Val("4321",8)); // Renvoie 2257.000000

    printf("%f\n",Val("11111111",2)); // Renvoie 255.000000
    printf("%f\n",Val("VV",32)); // Renvoie 1023.000000

    printf("%ld\n",Position("Hello World!","ell",1,DepuisDebut)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","elx",1,DepuisDebut)); // Renvoie 0 (pas de "elx" dans la chaîne source)
    printf("%ld\n",Position(Ma_Chaine,"o",1,DepuisDebut)); // Renvoie 5 (position du "o" de "Hello")
    printf("%ld\n",Position(Ma_Chaine,"o",6,DepuisDebut)); // Renvoie 8 (position du "o" de "World")
    printf("%ld\n",Position(Ma_Chaine,"o",9,DepuisDebut)); // Renvoie 0 (pas "o" après la position 9)
    printf("%ld\n",Position(Ma_Chaine,"Hello",50,DepuisDebut)); // Renvoie 0 (la position de départ > la taille de la chaîne source)
    printf("%ld\n",Position("","Hello World!",1,DepuisDebut)); // Renvoie 0 (la chaîne source est nulle)
    printf("%ld\n",Position("Hello World!","",1,DepuisDebut)); // Renvoie 0 (la chaîne recherchée est nulle)
    printf("%ld\n",Position("Hello","Hello World!",1,DepuisDebut)); // Renvoie 0 (la chaîne recherchée > la chaîne source)
    printf("%ld\n",Position("Hello World!","ell",0,DepuisDebut)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","ell",-50,DepuisDebut)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","Hello World!",1,DepuisDebut)); // Renvoie 1 (position du "H" de "Hello")
    printf("%ld\n",Position("Hello World!","Hello World!",5,DepuisDebut)); // Renvoie 0 (pas "Hello World!" après la position 5)

    printf("%ld\n",Position("Hello World!","ell",12,DepuisFin)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position(Ma_Chaine,"ell",Taille(Ma_Chaine),DepuisFin)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","o",12,DepuisFin)); // Renvoie 8 (position du "o" de "World")
    printf("%ld\n",Position("Hello World!","o",7,DepuisFin)); // Renvoie 5 (position du "o" de "Hello")
    printf("%ld\n",Position("Hello World!","o",4,DepuisFin)); // Renvoie 0 (pas "o" avant la position 4)
    printf("%ld\n",Position("Hello World!","ell",50,DepuisFin)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","ell",0,DepuisFin)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Hello World!","ell",-50,DepuisFin)); // Renvoie 0 (la position de départ < la taille de la chaîne source)

    printf("%ld\n",Position("Hello World!","HeLlO",1,DepuisDebut)); // Renvoie 0 (pas de "HeLlO" dans la chaîne source)
    printf("%ld\n",Position("Hello World!","HeLlO",1,DepuisDebut + SansCasse)); // Renvoie 1 (position du "H" de "Hello")
    printf("%ld\n",Position("Hello World!","HéLlO",1,DepuisDebut + SansCasse)); // Renvoie 1 (position du "H" de "Hello")
    printf("%ld\n",Position("Hello World!","ELL",1,SansCasse)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Héllo World!","ELL",1,SansCasse)); // Renvoie 2 (position du "é" de "Héllo")
    printf("%ld\n",Position("Hello World!","ELL",12,DepuisFin + SansCasse)); // Renvoie 2 (position du "e" de "Hello")
    printf("%ld\n",Position("Héllo World!","ELL",12,DepuisFin + SansCasse)); // Renvoie 2 (position du "é" de "Héllo")
    printf("%ld\n",Position(Majuscule(Ma_Chaine),"ell",Taille(Ma_Chaine),DepuisFin + SansCasse)); // Renvoie 2 (position du "e" de "Hello")

    printf("%ld\n",Position("Hello World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 0 ("ell" n'est pas un mot complet)
    printf("%ld\n",Position("H ell o World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 3 (position du "e" de "H ell o")
    printf("%ld\n",Position("H'ell.o World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 3 (position du "e" de "H'ell.o")
    printf("%ld\n",Position("Hello World!","Hello",1, MotComplet)); // Renvoie 1 (position du "H" de "Hello")
    printf("%ld\n",Position("Hello World!","world",1, SansCasse + MotComplet)); // Renvoie 7 (position du "W" de "World")
    printf("%ld\n",Position("Hello World!","world!",1, DepuisDebut + SansCasse + MotComplet)); // Renvoie 7 (position du "W" de "World!")
    printf("%ld\n",Position("Hello World!","Hello",0, DepuisFin + MotComplet)); // Renvoie 1 (position du "H" de "Hello")
    printf("%ld\n",Position(Ma_Chaine,"world",Taille(Ma_Chaine), DepuisFin + SansCasse + MotComplet)); // Renvoie 7 (position du "W" de "World")

    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","he",1,DepuisDebut)); // Renvoie 3 (Recherche du 1er "he" en partant du début)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","he",2,DepuisDebut)); // Renvoie 5 (Recherche du 2ème "he" en partant du début)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","elx",1,DepuisDebut)); // Renvoie 0 (pas de "elx" dans la chaîne source)
    printf("%ld\n",PositionOccurrence(Ma_Chaine,"Hello",50,DepuisDebut)); // Renvoie 0 (la position de l'occurrence > la taille de la chaîne source)
    printf("%ld\n",PositionOccurrence("","Hello World!",1,DepuisDebut)); // Renvoie 0 (la chaîne source est nulle)
    printf("%ld\n",PositionOccurrence("Hello World!","",1,DepuisDebut)); // Renvoie 0 (l'occurrence recherchée est nulle)
    printf("%ld\n",PositionOccurrence("Hello","Hello World!",1,DepuisDebut)); // Renvoie 0 (l'occurrence recherchée > la chaîne source)
    printf("%ld\n",PositionOccurrence("Hello World!","ell",0,DepuisDebut)); // Renvoie 0 (la position de l'occurrence = 0)
    printf("%ld\n",PositionOccurrence("Hello World!","ell",-50,DepuisDebut)); // Renvoie 0 (la position de l'occurrence < 0)
    printf("%ld\n",PositionOccurrence("Hello World!","Hello World!",1,DepuisDebut)); // Renvoie 1 (Recherche du 1er "Hello World!" en partant du début)
    printf("%ld\n",PositionOccurrence("Hello World!","Hello World!",2,DepuisDebut)); // Renvoie 0 (pas de 2ème "Hello World!" dans la chaîne source)

    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","rld",1,DepuisFin)); // Renvoie 19 (Recherche du 1er "rld" en partant de la fin)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","rld",2,DepuisFin)); // Renvoie 16 (Recherche du 2ème "rld" en partant de la fin)

    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","he",1,DepuisDebut + SansCasse)); // Renvoie 1 (Recherche du 1er "he" en partant du début)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","hé",1,DepuisDebut + SansCasse)); // Renvoie 1 (Recherche du 1er "hé" en partant du début)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","HE",3,SansCasse)); // Renvoie 5 (Recherche du 3ème "HE" en partant du début)
    printf("%ld\n",PositionOccurrence("Héhéhéllo Worldrldrld!","HE",3,SansCasse)); // Renvoie 5 (Recherche du 3ème "HE" en partant du début)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","wor",1,DepuisFin)); // Renvoie 0 (pas de "wor" dans la chaîne source)
    printf("%ld\n",PositionOccurrence("Hehehello Worldrldrld!","wor",1,DepuisFin + SansCasse)); // Renvoie 11 (Recherche du 1er "wor" en partant de la fin)

    printf("%ld\n",PositionOccurrence("Hello World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 0 ("ell" n'est pas un mot complet)
    printf("%ld\n",PositionOccurrence("H ell o World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 3 (Recherche du 1er "ell" en partant du début)
    printf("%ld\n",PositionOccurrence("H'ell.o World!","ell",1,DepuisDebut + MotComplet)); // Renvoie 3 (Recherche du 1er "ell" en partant du début)
    printf("%ld\n",PositionOccurrence("Hello World!","Hello",1, MotComplet)); // Renvoie 1 (Recherche du 1er "Hello" en partant du début)
    printf("%ld\n",PositionOccurrence("Hello World!","world",1, SansCasse + MotComplet)); // Renvoie 7 (Recherche du 1er "world" en partant du début)
    printf("%ld\n",PositionOccurrence("Hello World!","world!",1, DepuisDebut + SansCasse + MotComplet)); // Renvoie 7 (Recherche du 1er "world!" en partant du début)
    printf("%ld\n",PositionOccurrence("Hello World!","Hello",1, DepuisFin + MotComplet)); // Renvoie 1 (Recherche du 1er "Hello" en partant de la fin)
    printf("%ld\n",PositionOccurrence(Ma_Chaine,"world",1, DepuisFin + SansCasse + MotComplet)); // Renvoie 7 (Recherche du 1er "world" en partant de la fin)

    Ma_Position = PositionOccurrence("Hehehello Worldrldrld!","e",rangPremier,DepuisDebut);
    while(Ma_Position != 0)
    {
        printf("%ld\t",Ma_Position); // Renvoie 2    4   6
        Ma_Position = PositionOccurrence("Hehehello Worldrldrld!","e",rangSuivant,DepuisDebut);
        if (Ma_Position == 0) printf("\n");
    }

    Ma_Position = PositionOccurrence("Hehehello Worldrldrld!","rld",rangDernier,DepuisFin);
    while(Ma_Position != 0)
    {
        printf("%ld\t",Ma_Position); // Renvoie 19   16  13
        Ma_Position = PositionOccurrence("Hehehello Worldrldrld!","rld",rangPrecedent,DepuisFin);
        if (Ma_Position == 0) printf("\n");
    }

    Ma_Position = PositionOccurrence(Ma_Chaine_ANSI,"LA",rangPremier,DepuisDebut + SansCasse + MotComplet);
    while(Ma_Position != 0)
    {
        printf("%ld\t",Ma_Position); // Renvoie 13   56
        Ma_Position = PositionOccurrence(Ma_Chaine_ANSI,"LA",rangSuivant,SansCasse + MotComplet);
        if (Ma_Position == 0) printf("\n");
    }

    Ma_Position = PositionOccurrence(Ma_Chaine_ANSI,"LA",rangDernier,SansCasse + MotComplet);
    while(Ma_Position != 0)
    {
        printf("%ld\t",Ma_Position); // Renvoie 56   13
        Ma_Position = PositionOccurrence(Ma_Chaine_ANSI,"LA",rangPrecedent,DepuisFin + SansCasse + MotComplet);
        if (Ma_Position == 0) printf("\n");
    }

    printf("%ld\n",ChaineOccurrence("Hehehello Worldrldrld!","he",0)); // Renvoie 2
    printf("%ld\n",ChaineOccurrence("Hehehello Worldrldrld!","l",0)); // Renvoie 5
    printf("%ld\n",ChaineOccurrence("Hehehello Worldrldrld!","elx",0)); // Renvoie 0 (pas de "elx" dans la chaîne source)
    printf("%ld\n",ChaineOccurrence("","he",0)); // Renvoie 0 (la chaîne source est nulle)
    printf("%ld\n",ChaineOccurrence(Ma_Chaine,"",0)); // Renvoie 0 (la chaîne recherchée est nulle)
    printf("%ld\n",ChaineOccurrence("Hello",Ma_Chaine,0)); // Renvoie 0 (la chaîne recherchée > la chaîne source)
    printf("%ld\n",ChaineOccurrence(Ma_Chaine,Ma_Chaine,0)); // Renvoie 1

    printf("%ld\n",ChaineOccurrence("Hehehello Worldrldrld!","he",SansCasse)); // Renvoie 3
    printf("%ld\n",ChaineOccurrence("Hehehello Worldrldrld!","hé",SansCasse)); // Renvoie 3
    printf("%ld\n",ChaineOccurrence("Héhehèllo Worldrldrld!","HE",SansCasse)); // Renvoie 3
    printf("%ld\n",ChaineOccurrence("Hello World!","ell", MotComplet)); // Renvoie 0 ("ell" n'est pas un mot complet)
    printf("%ld\n",ChaineOccurrence("H ell o World!","ell", MotComplet)); // Renvoie 1
    printf("%ld\n",ChaineOccurrence("H'ell;o World!","ell", MotComplet)); // Renvoie 1
    printf("%ld\n",ChaineOccurrence(Ma_Chaine_ANSI,"LA", SansCasse + MotComplet)); // Renvoie 2

    printf("%s\n",Remplace(Ma_Chaine,"o","X",0)); // Renvoie "HellX WXrld!"
    printf("%s\n",Remplace("Hello XXX World!","XXX","xyz",0)); // Renvoie "Hello xyz World!"
    printf("%s\n",Remplace("Hello World!","XXX","xyz",0)); // Renvoie "Hello World!" (pas de "XXX" dans la chaîne source)
    printf("%s\n",Remplace("","XXX","xyz",0)); // Renvoie "" (la chaîne source est nulle)
    printf("%s\n",Remplace("Hello World!","","xyz",0)); // Renvoie "Hello World!" (la chaîne recherchée est nulle)
    printf("%s\n",Remplace(Ma_Chaine,"o","",0)); // Renvoie "Hell Wrld!"
    printf("%s\n",Remplace(Ma_Chaine,Ma_Chaine,"XXX",0)); // Renvoie "XXX"

    printf("%s\n",Remplace("Hello XXX World!","xxx","abcdef",0)); // Renvoie "Hello XXX World!" (pas de "xxx" dans la chaîne source)
    printf("%s\n",Remplace("Hello XXX World!","xxx","abcdef",SansCasse)); // Renvoie "Hello abcdef World!"
    printf("%s\n",Remplace("Hello éèù World!","eeu","xxx",SansCasse)); // Renvoie "Hello xxx World!"
    printf("%s\n",Remplace("Hello éèù World!","EEU","xxx",SansCasse)); // Renvoie "Hello xxx World!"
    printf("%s\n",Remplace("Hello World!","ell","lle",MotComplet)); // Renvoie "Hello World!" ("ell" n'est pas un mot complet)
    printf("%s\n",Remplace("H ell o World!","ell","lle",MotComplet)); // Renvoie "H lle o World!"
    printf("%s\n",Remplace("H_ell-o World!","ell","lle",MotComplet)); // Renvoie "H_lle-o World!"
    printf("%s\n",Remplace("Hello World!","hello","Hola",MotComplet + SansCasse)); // Renvoie "Hola World!"

    printf("%s\n",Remplace(Remplace("XXX YYY","XXX","Hello",0),"YYY","World!",0)); // Renvoie "Hello World!"

    printf("%d\n",ChaineCompare(Ma_Chaine,Ma_Chaine,ccNormal)); // Renvoie 0
    printf("%d\n",ChaineCompare("Hello",Ma_Chaine,ccNormal)); // Renvoie -1
    printf("%d\n",ChaineCompare(Ma_Chaine,"Hello",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("","Hello World!",ccNormal)); // Renvoie -1
    printf("%d\n",ChaineCompare("Hello World!","",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("","",ccNormal)); // Renvoie 0

    printf("%d\n",ChaineCompare("Hello World...","Hello World!",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("Hello World...","Hello World!",ccSansPonctuationNiEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("   Hello World!   ","Hello World! ",ccSansEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("   Hello World...   ","Hello World!   ",ccSansPonctuationNiEspace + ccSansEspace)); // Renvoie 0

    printf("%d\n",ChaineCompare("uéè...","ùèé...",ccNormal)); // Renvoie -1
    printf("%d\n",ChaineCompare("uéè...","ùèé...",ccSansAccent)); // Renvoie 0
    printf("%d\n",ChaineCompare("uéè.","ùèé;",ccSansAccent + ccSansPonctuationNiEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("uéè   ","   ùèé",ccSansAccent + ccSansEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("uéè...   ","   ùèé;",ccSansAccent + ccSansEspace + ccSansPonctuationNiEspace)); // Renvoie 0

    printf("%d\n",ChaineCompare("hello world!","Hello World!",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("hello world!","Hello World!",ccSansCasse)); // Renvoie 0
    printf("%d\n",ChaineCompare("hello world%","Hello World?",ccSansCasse + ccSansPonctuationNiEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("hello world   ","   Hello World",ccSansCasse + ccSansEspace)); // Renvoie 0
    printf("%d\n",ChaineCompare("uéè","UEE",ccSansCasse + ccSansAccent)); // Renvoie 0
    printf("%d\n",ChaineCompare("   uéè%","U E E?   ",ccSansCasse + ccSansPonctuationNiEspace + ccSansEspace + ccSansAccent)); // Renvoie 0

    printf("%d\n",ChaineCompare("à","b",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("à","b",ccOrdreLexicographique)); // Renvoie -1 (le carctère "à" est compris entre les caractère "a" et "b")

    printf("%d\n",ChaineCompare("zzz9abcd","zzz10abcd",ccNormal)); // Renvoie 1
    printf("%d\n",ChaineCompare("zzz9abcd","zzz10abcd",ccRespecteNumerique)); // Renvoie -1 (le nombre 10 est supérieur au nombre 9)

    printf("%d\n",ChaineCompare(" aB9--","àb9##   ",ccRespecteNumerique + ccOrdreLexicographique + ccSansCasse + ccSansAccent + ccSansEspace + ccSansPonctuationNiEspace)); // Renvoie 0

    printf("%ld\n",ChaineCommencePar("Hello World!","Hello",ccNormal)); // Renvoie 5 (la chaîne source commence par Hello)
    printf("%ld\n",ChaineCommencePar(Ma_Chaine,"Hello",ccNormal)); // Renvoie 5 (la chaîne source commence par Hello)
    printf("%ld\n",ChaineCommencePar(Ma_Chaine,Ma_Chaine,ccNormal)); // Renvoie 12 (la chaîne source commence par Hello World!)
    printf("%ld\n",ChaineCommencePar("Hello World!","Holla",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par Holla)
    printf("%ld\n",ChaineCommencePar("","Hello",ccNormal)); // Renvoie 0 (la chaîne source est vide)
    printf("%ld\n",ChaineCommencePar("Hello World!","",ccNormal)); // Renvoie 0 (la chaîne recherchée est vide)
    printf("%ld\n",ChaineCommencePar("","",ccNormal)); // Renvoie 0 (les deux chaînes sont vides)
    printf("%ld\n",ChaineCommencePar("Hello","Hello World!",ccNormal)); // Renvoie 0 (la chaîne recherchée > la chaîne source)

    printf("%ld\n",ChaineCommencePar("Hello World!","hello",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par hello)
    printf("%ld\n",ChaineCommencePar("Hello World!","hello",ccSansCasse)); // Renvoie 5 (la chaîne source commence par hello)

    printf("%ld\n",ChaineCommencePar("   Hello World!"," Hello ",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par  Hello )
    printf("%ld\n",ChaineCommencePar("   Hello World!"," Hello ",ccSansEspace)); // Renvoie 8 (la chaîne source commence par  Hello )
    printf("%ld\n",ChaineCommencePar("   Hello World!"," hello ",ccSansCasse + ccSansEspace)); // Renvoie 8 (la chaîne source commence par  hello )

    printf("%ld\n",ChaineCommencePar("uéè...","ùèé",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par ùèé)
    printf("%ld\n",ChaineCommencePar("uéè...","ùèé",ccSansAccent)); // Renvoie 3 (la chaîne source commence par ùèé)
    printf("%ld\n",ChaineCommencePar("   uéè","ùèé",ccSansCasse + ccSansEspace + ccSansAccent)); // Renvoie 6 (la chaîne source commence par ùèé)

    printf("%ld\n",ChaineCommencePar(Ma_Chaine2,"Hello",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par Hello)
    printf("%ld\n",ChaineCommencePar(Ma_Chaine2,"Hello",ccSansPonctuationNiEspace)); // Renvoie 14 (la chaîne source commence par Hello)
    printf("%ld\n",ChaineCommencePar("Hello World!",". . .héLLo",ccSansPonctuationNiEspace + ccSansAccent + ccSansCasse + ccSansEspace)); // Renvoie 5 (la chaîne source commence par . . .héLLo)

    printf("%ld\n",ChaineFinitPar("Hello World!","World!",ccNormal)); // Renvoie 6 (la chaîne source finit par World!)
    printf("%ld\n",ChaineFinitPar(Ma_Chaine,"World!",ccNormal)); // Renvoie 6 (la chaîne source finit par World!)
    printf("%ld\n",ChaineFinitPar(Ma_Chaine,Ma_Chaine,ccNormal)); // Renvoie 12 (la chaîne source finit par Hello World!)
    printf("%ld\n",ChaineFinitPar("Hello World!","Holla",ccNormal)); // Renvoie 0 (la chaîne source ne commence pas par Holla)
    printf("%ld\n",ChaineFinitPar("","World!",ccNormal)); // Renvoie 0 (la chaîne source est vide)
    printf("%ld\n",ChaineFinitPar("Hello World!","",ccNormal)); // Renvoie 0 (la chaîne recherchée est vide)
    printf("%ld\n",ChaineFinitPar("","",ccNormal)); // Renvoie 0 (les deux chaînes sont vides)
    printf("%ld\n",ChaineFinitPar("Hello","Hello World!",ccNormal)); // Renvoie 0 (la chaîne recherchée > la chaîne source)

    printf("%ld\n",ChaineFinitPar("Hello World!","world!",ccNormal)); // Renvoie 0 (la chaîne source ne finit pas par world!)
    printf("%ld\n",ChaineFinitPar("Hello World!","world!",ccSansCasse)); // Renvoie 6 (la chaîne source finit par world!)

    printf("%ld\n",ChaineFinitPar("Hello World!   "," World! ",ccNormal)); // Renvoie 0 (la chaîne source ne finit pas par  World! )
    printf("%ld\n",ChaineFinitPar("Hello World!   "," World! ",ccSansEspace)); // Renvoie 9 (la chaîne source finit par  World! )
    printf("%ld\n",ChaineFinitPar("Hello World!   "," world! ",ccSansCasse + ccSansEspace)); // Renvoie 9 (la chaîne source finit par  world! )

    printf("%ld\n",ChaineFinitPar("...uéè","ùèé",ccNormal)); // Renvoie 0 (la chaîne source ne finit pas par ùèé)
    printf("%ld\n",ChaineFinitPar("...uéè","ùèé",ccSansAccent)); // Renvoie 3 (la chaîne source finit par ùèé)
    printf("%ld\n",ChaineFinitPar("...uéè   ","ùèé",ccSansCasse + ccSansEspace + ccSansAccent)); // Renvoie 6 (la chaîne source finit par ùèé)

    printf("%ld\n",ChaineFinitPar(Ma_Chaine2,"World!",ccNormal)); // Renvoie 0 (la chaîne source ne finit pas par World!)
    printf("%ld\n",ChaineFinitPar(Ma_Chaine2,"World!",ccSansPonctuationNiEspace)); // Renvoie 16 (la chaîne source finit par World!)
    printf("%ld\n",ChaineFinitPar("Hello World!","wôRld!!!",ccSansPonctuationNiEspace + ccSansAccent + ccSansCasse + ccSansEspace)); // Renvoie 6 (la chaîne source finit par wôRld!!!)

    printf("%s\n",Inverse("Hello World!")); // Renvoie "·???ßš??Þ" (ANSI) "ÀÜôôɯ¿ÉìôøÌ" (OEM)
    printf("%s\n",Inverse(Ma_Chaine)); // Renvoie "·???ßš??Þ" (ANSI) "ÀÜôôɯ¿ÉìôøÌ" (OEM)
    printf("%s\n",Inverse("")); // Renvoie "·???ßš??Þ" (ANSI) "ÀÜôôɯ¿ÉìôøÌ" (OEM)
    printf("%s\n",Inverse("·???ßš??Þ")); // Renvoie "Hello World!"
    printf("%s\n",Inverse(Inverse("Hello World!"))); // Renvoie "Hello World!"

    return 0;
}

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
Salut,

D'avance désolé, mais voici quelques remarques après rapidement avoir parcouru le code :

* utilisation du français dans des noms des fonctions et macros
* aucune cohérence dans les convention de nommages
* utilisation de macro pédagogiques fantaisistes
* nombreuses allocations dynamiques superflues
* aucune vérification sur les tailles des tampons
* aucune vérification sur les pointeurs externes
* aucune vérification sur les pointeurs internes
* aucune vérification sur allocations mémoires
* utilisation de variable globales qui rends le code inutilisable en multitâche
* code totalement non thread safe
* code parfois bien compliqué pour de simple taches
* etc...

=> résultat : quelque soit l'utilité de cette librairie, elle est tout simplement inutilisable...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cyberripper)