Exercice langage C: Pointeurs sur tableaux à deux dimensions
Rédigé par BENKIRANE Fatima Ezzahra, Publié le 19 Mars 2012, Mise à jour le Mardi, 08 Novembre 2022 13:59Exercice 1
Pointeurs sur tableaux à deux dimensions :
Écrire un programme qui lit 5 mots d'une longueur maximale de 50 caractères et les mémorise dans un tableau de chaînes de caractères TABCH.
Inverser l'ordre des caractères à l'intérieur des 5 mots à l'aide de deux pointeurs P1 et P2. Afficher ces mots.
Exercice 2
Inverser l'ordre des mots :
Écrire un programme qui lit 5 mots, séparés par des espaces et qui les affiche ensuite dans une ligne, mais dans l'ordre inverse. Les mots sont mémorisés dans 5 variables nommées de M1 à M5.
Exemple voici une petite phrase ! ! phrase petite une voici
Exercice 1
#include
int main() {
/* Déclarations */
char TABCH[5][51];/* tableau de chaînes de caractères */
char AIDE; /* pour la permutation des caractères */
char *P1, *P2; /* pointeurs d'aide */
int I; /* indice courant */
/* TABCH+I est l'adresse de la I-ième chaîne du tableau */
/* Il vaut mieux convertir TABCH+I en pointeur sur char */
/* Saisie des données */
printf("Entrez 5 mots :\n");
for (I=0; I<5; I++)
{
printf("Mot %d (max.50 caractères) : ", I);
scanf("%s", TABCH[I]);
}
/* Inverser l'ordre des caractères à l'intérieur des mots */
for (I=0; I<5; I++)
{
P1 = (char *)(TABCH+I);
P2=P1; /* Placer P2 à la fin de la chaîne */
while (*P2 != '\0') P2++;
P2--; /* sinon '\0' est placé au début de la chaîne */
while (P1 < P2)
{
AIDE = *P1;
*P1 = *P2;
*P2 = AIDE;
P1++;
P2--;
}
}
/* Affichage des mots inversés */
for (I=0; I < 5; I++)printf("\n%s", TABCH[I]);
return 0;
}
Exercice 2
#include
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);
return 0;
}