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();
}
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();
}
Article plus récent Article plus ancien