Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 :
Ecrire un programme qui lit une ligne de texte (ne dépassant pas 200 caractères), la mémorise
dans une variable TXT et réalise ensuite les traitements suivants :
a) Afficher la longueur de la chaîne.
b) Déterminer et afficher le nombre de mots contenus dans la chaîne.
c) Afficher la chaine après la transformation de ses caractères saisis en majuscules en
minuscules.
Exercice 2 :
Ecrivez une fonction qui retourne le nombre d'occurrences d'un caractère dans une chaine de
caractères. Utilisez cette fonction dans la fonction principale main pour retourner l’occurrence
de chaque caractère.
Exercice 3 :
Ecrivez un programme qui lit un verbe du premier groupe au clavier et qui en affiche la
conjugaison au présent de l’indicatif de ce verbe. Contrôlez s’il s’agit bien d’un verbe en "er"
avant de conjuguer. Utilisez les fonctions gets, strcat et strlen.
Exercice 4:
Ecrivez un programme qui lit deux chaînes de caractères CH1 et CH2 au clavier et supprime
la première occurrence de CH2 dans CH1. Utilisez uniquement des pointeurs, une variable
logique TROUVE et la fonction strcpy.
1
Programmation en C
Série N°4 (TP/TD) ENSIT
Correction: les chaines de caractères
A.U 2019/2020
Exercice 1 :
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
/* Déclarations */
char TXT[200]; /* chaîne donnée */
int I; /* indices courants */
int nmot; /* nombre de mots */
int C; /* compteur du nombre d'occurrence de caractère */
puts(TXT);
return 0;
}
Exercice 2:
#include <stdio.h>
#include <string.h>
2
compteur++;
return compteur;
}
int main()
{
int taille; // taille du mot
int i;
int nboccur; // nb d'occurrences de la lettre
char texte[125];
taille = strlen(texte);
return 0;
}
Exercice 3:
#include <stdio.h>
#include <string.h>
#define N 20
strcpy(temp,verbe);
temp[l-2] = '\0';
if(temp[0]=='a' || temp[0]=='e' || temp[0]=='i' || temp[0]=='o'
|| temp[0]=='u' || temp[0]=='y')
printf("%s%s\n","j'",strcat(temp,"e"));
else
printf("%s %s\n","je",strcat(temp,"e"));
temp[l-2] = '\0';
printf("%s %s\n","tu",strcat(temp,"es"));
temp[l-2] = '\0';
printf("%s %s\n","il",strcat(temp,"e"));
temp[l-2] = '\0';
printf("%s %s\n","nous",strcat(temp,"ons"));
temp[l-2] = '\0';
printf("%s %s\n","vous",strcat(temp,"ez"));
3
temp[l-2] = '\0';
printf("%s %s\n","ils",strcat(temp,"ent"));
printf("\n");
return 0;
}
Exercice 4:
#include <stdio.h>
#include <string.h>
int main()
{
/* Déclarations */
char CH1[101], CH2[101]; /* chaînes données */
char *P1, *P2; /* pointeurs d'aide dans CH1 et CH2 */
int TROUVE; /* indicateur logique: vrai, si le caractère */
/* actuel dans CH1 a été trouvé dans CH2. */
/* Affichage du résultat */
printf("Chaîne résultat : \"%s\" \n", CH1);
return 0;
}