UNIVERSITE IBN ZOHR – AGADIR Année Universitaire : 2024-2025
Ecole Nationale des Sciences Appliquées Filière : AP 2
Prof. Abenaou A.
TP N5
Programmation C
Manipulation 1
Utilisation de la fonction strstr pour la recherche d’un mot dans une ligne de texte.
char *pos = strstr(ligne, mot) permet de chercher la première occurrence du mot
mot dans ligne. Si le mot est trouvé, pos contiendra l'adresse du premier caractère
de cette occurrence.
Par exemple :
char ligne[ ] = "C'est un test du programme.";
le mot "test" commence à la position 10 dans ligne, pos pointera vers ligne[10].
La valeur de (pos – ligne) donne l'index de cette position par rapport au début de
la chaîne (ligne).
Exemple de programme qui permet de chercher le mot test dans un tableau
contenant la phrase : "C'est un test du programme."
#include <stdio.h>
#include <string.h>
int main() {
char ligne[ ] = "C'est un test du programme.";
char mot[ ] = "test";
// Cherche le mot "test" dans la ligne
char *pos = strstr(ligne, mot);
while (pos ! = NULL) // Vérification de 'pos' étant non nul
{
printf("Mot trouvé à la position %ld.\n", pos - ligne);
pos = strstr(pos + 1, mot); // Recherche la prochaine
occurrence
}
return 0 ;
}
Manipulation 2
Exercice
Ecrire un programme qui permet de lire un certain nombre de lignes de texte et
les enregistrer dans un tableau 2D (char). On doit saisir ligne par ligne, la lecture
se termine lorsqu’on saisit la chaine «fin ».
Par la suite l’utilisateur doit saisir un mot et le programme doit déterminer les
lignes contenant ce mot.
On souhaite également déterminer le nombre d’occurrence du mot saisit dans
chaque ligne.
Finalement trier dans l’ordre croissant les lignes de texte selon leur taille.
Le programme doit contenir les fonctions suivantes :
- int contient_mot(char *ligne, char *mot)
- int compter_occurrences_mot(char *ligne, char *mot)
- void trier_lignes (char *texte[], int n)