Exercice 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#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
1 2 3 4 5 6 7 8 |
#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; } |