Upanddown ( chaine de caractère )

Description

Encore un simple petit bout de code pour manipulé une chaine, ex:

char MaChaine[] = "Salut";

UpAndDown(MaChaine, true); // true c'est pour commencer au premier caractère
cout << MaChaine;

MaChaine va devenir: SaLuT

Bref, encore un bout de code qui ne sert pas à grand chose mais bon. :)

Source / Exemple :


// Fichiers à inclure
#include <string.h>
#include <stdio.h>

// Prototype
void UpAndDown(char *String, bool StartUpper = true);

// Entré du programme
int main()
{

// Chaine avec laquel on va faire le teste
char MaChaine[] = "Appuyez sur une touche pour continuer . . .";

      // Efface l'écran
      system("cls");
      // Ajoute une ligne(vide)
      cout << endl;

      // Affiche la chaine avant de la modifier
      cout << "Voici la chaine avant modifications:" << endl;
      cout << MaChaine << endl << endl;

      // Modifie la chaine
      UpAndDown(MaChaine);

      // Affiche la chaine après l'avoir modifier
      cout << "Voici la chaine apres modifications:" << endl;
      cout << MaChaine << endl << endl << endl;

      // Fait une pause
      system("pause");
      // C'est terminer!
      return 0;

}

// La fonction UpAndDown
// On à le choix de commencer au premier caractères ou au deuxième
//
// StartUpper = true(commence au premier caractère)
// StartUpper = false(commence au deuxième caractères)
//
// String = Chaine à modifier
void UpAndDown(char *String, bool StartUpper = true)
{

// Pour effectuer les boucles
unsigned int i = 0;
unsigned int a = 0;
// Connaître la longeur de la chaine à modifier
unsigned int stringlen = (strlen(String) - 1);
// Pour mettre un caractère un majuscule ou en minuscule
char cstring[2];

      // Ajoute le caractère(NULL) de fin de chaine
      cstring[1] = 0;

      // Si la chaine n'est pas vide(Si elle contient des caractères)
      if (stringlen > 0)
      {

            // Vérifie si on commence au premier caractère ou au deuxième
            if (StartUpper == false)
                  a = 1;

            // Passe tous les caractères un à un à partir du début(premier caractère)
            for (i = 0; i <= stringlen; i++)
            {

                  // cstring va contenir le caractère pointer par i dans String
                  cstring[0] = String[i];

                  // Si ce n'est pas un espace
                  if (String[i] != ' ')
                  {

                        // Si à 1 c'est qu'au dernier passage ici on à mit le caractère en majuscule
                        if (a == 1)
                        {

                              // Met le caractère en minuscule
                              String[i] = *strlwr(cstring);
                              a = 0;  // Remet à zéro pour mettre le prochain en majusule

                        }
                        else  // Sinon
                        {

                              // Met le caractère en majuscule
                              String[i] = *strupr(cstring);
                              a = 1;  // Remet à 1 pour mettre le prochain en minuscule

                        }

                  }

            }

      }

// C'est terminer!!!

}

Le résultat à l'écran:

Voici la chaine avant modifications:
Appuyez sur une touche pour continuer . . .

Voici la chaine apres modifications:
ApPuYeZ sUr UnE tOuChE pOuR cOnTiNuEr . . .

Appuyez sur une touche pour continuer . . .

Voila c'est tout! :)

Conclusion :


Créé et Tester sous Dev-C++ 4. Si vous avez un problème avec ce code ou autre, laissez moi un message! :)
Dans le zip il y à le même code que vous venez de voir.

Codes Sources

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.