Quelques algorythmes de string.h [ansi c++]

Contenu du snippet

Quelques algorythme de string.h : strlen, strcmp, et strcat.

Source / Exemple :


//******************************************************************************
//
//     AUTEUR : MULLER Maxime
//
//     COPYRIGHT : OpenSource MULLER Maxime 2001 - 2002
//
//     PROJET : Manipulation des chaines de caracteres.
//
//     PROPRIETES : ...
//
//     DESCRIPTION : ...
//
//******************************************************************************

/* Prototypes de fonctions et variables globales. */

int  longueure_chaine(char * chaine);
bool compare_chaine(char * chaine_1, char * chaine_2);
void concat_chaine(char * chaine_1, char * chaine_2);

/* Definitions des fonctions. */

int longueure_chaine(char * chaine)
 {
  int i = 0;

  while(chaine[i] != '\0') // Tant que l'on a pas atteint le caractère de fin
   {                       // chaine, ajoute 1 à i.
    i++;
   }

  return i;
 }

bool compare_chaine(char * chaine_1, char * chaine_2)
 {
  int lon_ch1, lon_ch2, i;
  i = 0;

  lon_ch1 = longueure_chaine(chaine_1); // Collecte les longueures des 2 chaines
  lon_ch2 = longueure_chaine(chaine_2); // avant de comparer celles-ci.

  if(lon_ch1 != lon_ch2) // Si la longueure des 2 chaines est differente
   {                     // , alors les 2 chaines sont differentes.
    return false;
   }
  else
   {
    for(i = 0; i <= lon_ch1; i++) // Entamme une boucle de 0 jusqu'a la longeure d
     {                            // -es 2 chaines.

      if((chaine_1[i] == chaine_2[i])) // Verifie si les 2 chaines contiennent les
       {                               // memes caracteres.

        if(i == lon_ch1) return true;  // Verifie que la chaine de caractere a ete
                                       // parcourue integralement.

       }
      else // Si les 2 chaines ne contiennent pas les memes caracteres alors elles
           // sont differentes.
       {
        return false;
       }
     }
   }
 }
 
/* Un grand merci à Thaeron, sans lui j'aurais toujours
   de gros problèmes avec cette fonction. */

void concat_chaine(char * chaine_1, char * chaine_2)
 {
  int lon_ch1, lon_ch2, i;
  
  // Collecte les longueures des 2 chaines.
  
  lon_ch1 = longueure_chaine(chaine_1);
  lon_ch2 = longueure_chaine(chaine_2);
  i = 0;
  
  // Parcours de la chaîne 2 jusqu'a ce qu'elle soit parcourue en entier
  
  for(i = 0;i < lon_ch2; i++)
   {
    chaine_1[lon_ch1 + i] = chaine_2[i];  // Concaténation des 2 chaînes
   }
 }

Conclusion :


Aucun bug connu pour le moment.

A voir également

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.