Exercice langage C: Pointeurs sur tableaux à deux dimensions


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;
}