1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Les chaines de caractères - exercices corrigés langage c chaines caracteres

abdelouafiDec 12, 2016

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      184
      Likes Received:
      9
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      TD sur les chaînes de caractères
      1. Ecrire une fonction qui teste si un mot est un palindrome. On rappelle qu'un mot palindrome peut être lu de gauche à droite ou de droite à gauche, voici des exemples de mots palindromes:
      - Radar
      - ADA (langage de programmation)
      - AXA
      - Rêver
      - ses
      - sms

      2. Ecrire une procédure qui supprime tous les espaces d'un texte?
      exemple:
      Bonjour tous le monde, vous êtes étudiant ISTA
      Résultat:
      Bonjourtouslemonde,vousêtesétudiantISTA

      3. Ecrire une procédure (ou fonction) qui permet de déterminer les fréquences des lettres a,b,c,....z dans un texte saisie par clavier?

      4- Ecrire une fonction qui prend en paramètre une chaine[​IMG] de caractère, cette fonction devra transformer les lettres minuscules en des lettres majuscules.
      exemple: supposons on saisie "Texte" -----------> le résultat sera "TEXTE"


      5- Ecrire un programme en c qui permet de saisir un verbe du premier groupe. Ensuite il affiche la conjugaison de ce verbe au présent.

      Exemple : manger.

      Je mange
      Tu manges
      il mange
      ......

      Remarque: Avant de commencer le traitement , il faut d'abord vérifier que le verbe se termine bien par “er”.

      :):)

      CIQUEZ SUR "SOLUTION" EN HAUT POUR VOIR LA CORRECTION :D:D
       
      Last edited: Dec 23, 2016
      Loading...
      1- Programme qui permet de déterminer si un mot est palindrome, dans ce programme on va utiliser une variable booléen qui prend soit 0 si le mot n'est pas palindrome ou bien 1 dans le cas contraire.

      Code:
      #include <stdio.h>
      #include <string.h>
      main()
      {
      /* Déclarations */
      char texte[101]; /* Tableau de chaîne donnée contenant le texte saisie   */
      int i,j,palindrome;      /* indices courants */
      
      
        /* Saisie des données */
      printf("Entrez votre texte :\n");
      gets(texte);
      
      j=strlen(texte)-1;
      
      //la variable palindrome peut prendre soit 0 ou bien 1
      //si palindrome=0 alors la phrase n'est pas un palindrome
      palindrome=1;
      for (i=0 ;i<j ; i++,j--){
      
            if (texte != texte[j]){
          
                palindrome=0;
                break;
                }
                }
      
        /* Affichage du résultat */
      if (palindrome)
          printf("La chaîne \"%s\" est un palindrome.\n", texte);
      else
          printf("La chaîne \"%s\" n'est pas un palindrome.\n", texte);
      
      }


      2- Le programme qui permet de supprimer les espaces dans un texte saisie par clavier:

      Code:
      #include <stdio.h>
      main()
      {
      
      char texte[201]; /* le texte à saisir    */
      int  i,j;     
      
      /* Saisie des données */
      printf("Donnez votre texte :\n");
      gets(texte);
      
      // supprimer les espaces dans la variable texte
      j=0;
      for (i=0 ; texte ; i++)
          {
           texte[j] = texte;
           if (texte != ' ') j++;
          }
      /* Terminer la chaîne !! */
      texte[j]='\0';
        /* Edition du résultat */
      puts(texte);
      }



      3- Ce programme permet de calculer la fréquence des caractères dans un texte saisie par clavier. On va utiliser ici deux tableaux , le premier tableau, de chaîne de caractères, nommé t[100] (de taille 100 caractères) pour mémoriser le texte à saisir, et le deuxième tableau de type entier pour mémoriser la fréquence des caractères du texte saisie, ce tableau prend le nom t1 de taille 26 (nombre de caractères de l'alphabet en français).

      Notez bien qu'on peut utiliser la boucle suivante:
      for (char c='a';c<='z';c++)
      {
      ..........
      }
      C varie de 'a' jusqu'à 'z'
      Le programme est le suivant:
      Code:
      #include<stdio.h>
      #include<string.h>
      
      main(){
          char t[100];
          int t1[26];
          int i,j;
          gets(t);
        
          //for (char c='a';c<='z';c++) t1[c]=0;
        
          for (char c='a';c<='z';c++)
          {
              printf("oui \n");
              for(i=0;i<=strlen(t);i++){
            
              if(t==c) t1[c-'a']+=1;
              //printf("oui");
            
          }
          }
        
          for (char c='a';c<='z';c++)
          {
              printf("la fréquence de %c est %d: \n",c,t1[c-'a']);
            
          }
        
          for (char c='a';c<='z';c++)
          {
              printf("%c",t[c-'a']);
          }
      }


      4- convertir un texte majiscule en minuscule et vice-versa

      Code:
      #include <stdio.h>
      main()
      {
      
      char texte[100];
      int i;     
      
      /* Saisie de la chaîne */
      printf("Donnez votre texte : ");
      gets(texte);
      
      for (i=0; texte; i++)
          {
           if (texte>='A' && texte<='Z')
           // on va utiliser le tableau du code asci, dans ce tableau la valeur du
           //caractère 'A' est 065 en décimal et la valeur de 'B' est 066
           //pour 'a' sa valeur en décimal est 097, et pour 'b' sa valeur est 098
           // 'b' en minuscule est 'B' - 'A' + 'a' ce qui donne 066-065+097=098
           //et 098 est exactement le code du 'b' en décimal
                       texte = texte-'A'+'a';
           else if (texte>='a' && texte<='z')
                       texte = texte-'a'+'A';
          }
        /* Affichage*/
      printf("%s\n", texte);
      
      }


      5- Conjuguer un verbe premier groupe:

      Code:
      #include <stdio.h>
      #include <string.h>
      main()
      {
      
      char texte[20];
      char resultat[30];
      int i;       
      
      
      printf("Donnez le Verbe : ");
      gets(texte);
      
      /* tester si ce verbe est un verbe premier groupe*/
      i=strlen(texte);
      if ((texte[i-2]!='e') || (texte[i-1]!='r'))
            puts("ce verbe n'est pas premier groupe \n");
      else
           {
          
            texte[i-2]='\0';
          
          
            resultat[0]='\0';
            strcat(resultat, "je ");
            strcat(resultat, texte);
            strcat(resultat, "e");
            puts(resultat);
      
             . . .
      
            resultat[0]='\0';
            strcat(resultat, "ils ");
            strcat(resultat, texte);
            strcat(resultat, "ent");
            puts(resultat);
           }
      }

Share This Page

Share