Etudes/C/Premiere annee/tdChaines/main.c

180 lines
5.6 KiB
C

#include <stdio.h>
#include <stdlib.h>
#define TAILLEMAX 255
int main()
{
void exercice1(char phraseExo[TAILLEMAX])
{
char bonjour[] = "Bonjour";
printf("\nVotre phrase est %s", phraseExo);
//Le strlen permet de calculer la taille d'une chaine de caractères.
printf("\nLa taille de votre phrase est égale à %d.\n", strlen(phraseExo));
//Le strcomp permet de comparer entièrement deux chaines de caractères.
if(strcmp(phraseExo, bonjour))
{
printf("Votre phrase est égale ou commence par \"Bonjour\".\n");
}
else
{
printf("Votre phrase n'est pas égale à \"Bonjour\".\n");
}
//Le strncomp permet de comparer deux chaines de caractères jusqu'à un index ou la fin d'une des chaines de caractère.
if(strncmp(phraseExo, bonjour))
{
printf("Votre phrase commence par \"Bonjour\".\n");
}
else
{
printf("Votre phrase ne commence pas par \"Bonjour\".\n");
}
//Le strcpy permet de copier une chaine de caractère dans une autre.
strcpy(phraseExo, bonjour);
printf("La variable phraseExo[] contient maintenant \"%s\".\n", phraseExo);
}
void exercice2(char phraseExo[TAILLEMAX])
{
int boucle;
int nbA = 0;
for(boucle = 0; boucle < strlen(phraseExo); boucle++)
{
if(phraseExo[boucle] == 'a')
{
nbA++;
}
}
printf("Il y a %d lettre a dans la phrase \"%s\".", nbA, phraseExo);
}
void exercice3(char phraseExo[TAILLEMAX])
{
int nBvoyelle = 0;
int boucle;
for(boucle = 0; boucle < strlen(phraseExo); boucle++)
{
if(phraseExo[boucle] == 'a' || phraseExo[boucle] == 'e' || phraseExo[boucle] == 'i' || phraseExo[boucle] == 'o' ||
phraseExo[boucle] == 'u' || phraseExo[boucle] == 'y')
{
nBvoyelle++;
}
}
printf("Il y a %d voyelle(s).\n", nBvoyelle);
}
void exercice4(char phraseExo[TAILLEMAX])
{
int nBconsonne = 0;
int boucle;
for(boucle = 0; boucle < strlen(phraseExo); boucle++)
{
if((phraseExo[boucle] >= 'a' && phraseExo[boucle] <= 'z') || (phraseExo[boucle] >= 'A' && phraseExo[boucle] <= 'Z'))
{
if(phraseExo[boucle] != 'a' && phraseExo[boucle] != 'A' && phraseExo[boucle] != 'e' && phraseExo[boucle] != 'E' &&
phraseExo[boucle] != 'i' && phraseExo[boucle] != 'I' && phraseExo[boucle] != 'o' && phraseExo[boucle] != 'O' &&
phraseExo[boucle] != 'u' && phraseExo[boucle] != 'U' && phraseExo[boucle] != 'y' && phraseExo[boucle] != 'Y')
{
nBconsonne++;
}
}
}
printf("Il y a %d consonne(s).\n", nBconsonne);
}
void exercice5(char phraseExo[TAILLEMAX])
{
int nBmot = 0;
int boucle;
for(boucle = 0; boucle < strlen(phraseExo); boucle++)
{
if((phraseExo[boucle] >= 'a' && phraseExo[boucle] <= 'z') || (phraseExo[boucle] >= 'A' && phraseExo[boucle] <= 'Z'))
{
if((phraseExo[boucle + 1] >= ' ' && phraseExo[boucle+1] <= '/') ||
(phraseExo[boucle + 1] >= ':' && phraseExo[boucle+1] <= '@') ||
(phraseExo[boucle + 1] >= '[' && phraseExo[boucle+1] <= '`') || phraseExo[boucle+1]=='\0')
{
nBmot++;
}
}
}
printf("Il y a %d mot(s) dans votre phrase.", nBmot);
}
void exercice6(char phraseExo[TAILLEMAX])
{
int boucle;
printf("Votre phrase à l'envers donne :\n");
for(boucle = strlen(phraseExo); boucle >= 0; boucle--){
printf("%c", phraseExo[boucle]);
}
printf("\n");
}
void exercice7(char phraseExo[TAILLEMAX])
{
char phraseExoInversion[TAILLEMAX];
int boucle = 0;
for(boucle = 0; boucle < strlen(phraseExo); boucle++)
{
if(phraseExo[boucle] >= 'a' && phraseExo[boucle] <= 'z')
{
phraseExoInversion[boucle] = phraseExo[boucle] - ('a'-'A');
}
if(phraseExo[boucle] >= 'A' && phraseExo[boucle] <= 'Z')
{
phraseExoInversion[boucle] = phraseExo[boucle] - ('A' - 'a');
}
}
printf("%s\n", phraseExoInversion);
}
char phrase[TAILLEMAX];
int exo;
printf("Saisissez une phrase : ");
gets(phrase);
printf("Avec quel exercice voulez-vous traiter cette phrase ?\n");
printf("1- Exemple des différentes fonctions str.\n");
printf("2- Comptage du nombre de a dans une phrase.\n");
printf("3- Comptage du nombre de voyelle dans une phrase.\n");
printf("4- Comptage du nombre de consonne dans une phrase.\n");
printf("5- Comptage du nombre de mot dans une phrase.\n");
printf("6- Lire la phrase dans l'ordre inverse.\n");
printf("7- Inverser majuscule et minuscule.\n");
printf("Choix :");
scanf("%d", &exo);
switch (exo)
{
case 1:
exercice1(phrase);
break;
case 2:
exercice2(phrase);
break;
case 3:
exercice3(phrase);
break;
case 4:
exercice4(phrase);
break;
case 5:
exercice5(phrase);
break;
case 6:
exercice6(phrase);
break;
case 7:
exercice7(phrase);
break;
default:
printf("Il n'y a pas d'exercice pour cette valeur.");
}
}