mercredi 6 avril 2011

LES CHAINES DE CARACTERES dans le langage C++ : Exercices Avec Corrigés

LES CHAINES DE CARACTERES :

Exercice 1:

Saisir une chaîne de caractères, afficher les Éléments de la chaîne et leur adresse (y compris le dernier caractère '\0').

Exercice 2:


Saisir une chaîne de caractères. Afficher le nombre de e et d'espaces de cette chaîne.

Exercice 3:

L'utilisateur saisit le nom d'un fichier. Le programme vérifie que celui-ci possède l'extension .PAS

Exercice 4:


Un oscilloscope à mémoire programmable connecté à un PC renvoie l'information suivante sous forme d'une  chaîne de caractères terminée par '\0'au PC:
"CHANNELA 0 10 20 30 40 30 20 10 0 -10 -20 -30 -40 -30 -20 -10 -0"

Afficher sur l'Écran la valeur des points vus comme des entiers. On simulera la présence de l'oscilloscope en initialisant une chaîne de caractères char mesures[100].
-------------------------------------------------------------------------------------------------------
Correction
-------------------------------------------------------------------------------------------------------

Exercice 1:

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void main()
{
char i=0,*phrase;
phrase = (char*)malloc(20);/* reserve 20 places */
printf("ENTRER UNE PHRASE: ");
gets(phrase);/* saisie */
printf("VOICI LES ELEMENTS DE LA CHAINE ET LEUR ADRESSE\n");
do
       {
printf("LETTRE: %c CODE ASCII: %x ADRESSE: %p\n",phrase[i],phrase[i],phrase+i);

       i++;
       }
while(phrase[i-1]!='\0');
free(phrase);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}


Exercice 2:

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void main()
{
char *phrase,compt_espace = 0,compt_e = 0,i;
phrase=(char*)malloc(20);/* reserve 20 places */
printf("ENTRER UNE PHRASE:");
gets(phrase);  /* saisie */
for(i=0;phrase[i]!='\0';i++)
       {
       if(phrase[i]=='e')compt_e++;
       if(phrase[i]==' ')compt_espace++;
       }
printf("NOMBRE DE e: %d\n",compt_e);
printf("NOMBRE D'ESPACES : %d\n",compt_espace);
free(phrase);
printf("POUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}


Exercice 3:

#include <conio.h>
#include <alloc.h>
#include <string.h>
void main()
{
char *nom,*copie;
int n;
nom = (char*)malloc(30);
copie = (char*)malloc(30);
printf("\nNOM DU FICHIER (.PAS):");
gets(nom);
strcpy(copie,nom);
strrev(copie);/* chaine inversee */
n = strnicmp("SAP.",copie,4);/* n vaut 0 si ‚galite */
if(n!=0)printf("\nLE FICHIER N'EST PAS DE TYPE .PAS\n");
else printf("\nBRAVO CA MARCHE\n");
free(nom);
free(copie);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}


Exercice 4:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
char mesures[100] =
"CHANNELA 0 10 20 30 40 30 20 10 0 -10 -20 -30 -40 -30 -20 -10 0";
int i,j,val[20],nombre_val=0;
char temp[4];   /* chaine temporaire */
/* recherche des nombres */
for(i=9;mesures[i]!='\0';i++)
       {
       for(j=0;(mesures[i]!=' ')&&(mesures[i]!='\0');j++)
              {
              temp[j]=mesures[i];
              i++;
              }
       temp[j] = '\0';     /* On borne la chaine */
       val[nombre_val] = atoi(temp); /* Conversion de la chaine temporaire en nombre */
       nombre_val++;
       }
/* Affichage du resultat */
clrscr();
for(i=0;i<nombre_val;i++)printf("val[%d] = %d\n",i,val[i]);
printf("POUR SORTIR FRAPPER UNE TOUCHE:");
getch();
}
  

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP