Solution TP 7
Exercice 1
#include <stdio.h>
#include <conio.h>
main()
{
char M1[30], M2[30], M3[30], M4[30], M5[30];
printf("Entrez 5 mots, séparés par des espaces :\n");
scanf ("%s %s %s %s %s", M1, M2, M3, M4, M5);
printf("%s %s %s %s %s\n",M5, M4, M3, M2, M1);
getch();
}
Exercice 2
#include <stdio.h>
#include <conio.h>
main()
{
/* Déclarations */
char TXT[201]; /* chaîne donnée */
int I,J; /* indices courants */
int L; /* longueur de la chaîne */
int C; /* compteur des lettres 'e' */
int AIDE; /* pour l'échange des caractères */
/* Saisie des données */
printf("Entrez une ligne de texte (max.200 caractères) :\n");
gets(TXT); /* L'utilisation de scanf est impossible pour */
/* lire une phrase contenant un nombre variable de mots. */
/* a) Compter les caractères */
/* La marque de fin de chaîne '\0' est utilisée comme condition d'arrêt. */
for (L=0; TXT[L]; L++) ;
printf("Le texte est composé de %d caractères.\n",L);
/* b) Compter les lettres 'e' dans le texte */
C=0;
for (I=0; TXT[I]; I++)
if (TXT[I]=='e') C++;
printf("Le texte contient %d lettres \'e\'.\n",C);
/* c) Afficher la phrase à l'envers */
for (I=L-1; I>=0; I--)
putchar(TXT[I]); /* ou printf("%c",TXT[I]); */
putchar('\n'); /* ou printf("\n"); */
/* d) Inverser l'ordre des caractères */
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
exosup.com page facebook
}
puts(TXT); /* ou printf("%s\n",TXT); */
getch();
}
Exercice 3
strlen(<s>) fournit la longueur de la chaîne sans compter le '\0' final
strcpy(<s>, <t>) copie <t> vers <s>
strcat(<s>, <t>) ajoute <t> à la fin de <s>
strcmp(<s>, <t>) compare <s> et <t> lexico-graphiquement et fournit un résultat:
négatif si <s> précède <t>
zéro si <s> est égal à<t>
positif si <s> suit <t>
strncpy(<s>, <t>,<n>) copie au plus <n> caractères de <t> vers <s>
strncat(<s>, <t>, <n>) ajoute au plus <n> caractères de <t> à la fin de <s>
___________----------------------------------------___________
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
{
/* Déclarations */
char VERB[20]; /* chaîne contenant le verbe */
char AFFI[30]; /* chaîne pour l'affichage */
int L; /* longueur de la chaîne */
/* Saisie des données */
printf("Donnez un Verbe : ");
gets(VERB);
/* Contrôler s'il s'agit d'un verbe en 'er' */
L=strlen(VERB);
if ((VERB[L-2]!='e') || (VERB[L-1]!='r'))
puts("\a Ce n'est pas un verbe du premier groupe.!");
else
{
/* Couper la terminaison 'er'. */
VERB[L-2]='\0';
/* Conjuguer ... */
AFFI[0]='\0';
strcat(AFFI, "je ");
strcat(AFFI, VERB);
strcat(AFFI, "e");
puts(AFFI);
AFFI[0]='\0';
strcat(AFFI, "tu ");
strcat(AFFI, VERB);
strcat(AFFI, "es");
puts(AFFI);
AFFI[0]='\0';
strcat(AFFI, "il ");
strcat(AFFI, VERB);
strcat(AFFI, "e");
puts(AFFI);
exosup.com page facebook
AFFI[0]='\0';
strcat(AFFI, "nous ");
strcat(AFFI, VERB);
strcat(AFFI, "ons");
puts(AFFI);
AFFI[0]='\0';
strcat(AFFI, "vous");
strcat(AFFI, VERB);
strcat(AFFI, "ez");
puts(AFFI);
AFFI[0]='\0';
strcat(AFFI, "ils ");
strcat(AFFI, VERB);
strcat(AFFI, "ent");
puts(AFFI);
}
getch();
}
Exercice 4
#include <stdio.h>
#include<conio.h>
#include <string.h>
main()
{
/* Déclarations */
int N; /* nombre entré */
char JOUR[8][10] = {"\a Erreur!", "lundi", "mardi", "mercredi", "jeudi", "vendredi",
"samedi","dimanche"};
/* Saisie du nombre */
printf("Entrez un nombre entre 1 et 7 : ");
scanf("%d", &N);
/* Affichage du résultat - pour perfectionnistes */
if (N>0 && N<8)
printf("Le %d%s jour de la semaine est %s. \n", N, (N==1)?"er":"eme", JOUR[N]);
else
puts(JOUR[0]);
getch();
}
exosup.com page facebook