CHAPITRE 7�� LANGAGE DE � PROGRAMMATION: C
F. Karami
Les Chaînes de Caractères
*
Programmer en langage C
2
Chaînes de Caractères
*
Programmer en langage C
3
1)Définition et Déclarations
2) Chaînes de caractères constantes(chaînes
littérales)
3) Tableaux de caractères
4) Chaînes et pointeurs
5) Ordre alphabétique et lexicographique
6)Manipulation des chaînes de caractères
1) Définition et Déclarations
*
Programmer en langage C
4
Les chaînes de caractères
Déclarations
char <nomchaine> [<longueur>];
Char *<nomchaine>;
Char nom[20];
Char *prenom;
*
Programmer en langage C
5
Les chaînes de caractères
2) Chaînes de caractères constantes(chaînes littérales)
*
Programmer en langage C
6
Les chaînes de caractères
3)Tableaux de caractères
*
Programmer en langage C
7
Les chaînes de caractères
4) Chaînes et pointeurs
Cette instruction déclare le pointeur message vers une variable de type char, mais le pointeur ne pointe encore sur rien. Si on écrit:
La chaîne sera stocker quelque part dans la mémoire(avec
un caractère nul à la fin).
Voici une instruction équivalente à la précédente:
*
Programmer en langage C
8
Les chaînes de caractères
*
Programmer en langage C
9
Les chaînes de caractères
5)Ordre alphabétique et lexicographique
*
Programmer en langage C
10
Les chaînes de caractères
6)Manipulation des chaînes de caractères
*
Programmer en langage C
11
Les chaînes de caractères
Quelques Fonctions de <string.h>
*
Programmer en langage C
12
Les chaînes de caractères
*
Programmer en langage C
13
Les chaînes de caractères
*
Programmer en langage C
14
Les chaînes de caractères
*
Programmer en langage C
15
Les chaînes de caractères
*
Programmer en langage C
16
Les chaînes de caractères
#include <stdio.h>
#include <string.h>
main() {
char *str="E.N.A.C.", c = '.', *ptr;
if ( (ptr = strrchr(str, c)) != NULL)
printf("Le caractere %c est en position %d\n", c, ptr-str);
else
printf("Pas trouve\n"); }
___________________________________________
/* résultat de l'exécution */
Le caractere . est en position 7
*
Programmer en langage C
17
Les chaînes de caractères
Manipulation des chaînes de caractères
#include <stdio.h>
#include <string.h>
main() {
char *str = "E.N.A.C.", c = 'A', *ptr;
if ( (ptr = strchr(str, c)) != NULL )
printf("Le caractere %c est a la position %d\n", c, ptr-str);
else
printf("Le caractere %c n'est pas trouve dans %s\n", c, str)
}
/* résultat de l'exécution*/
Le caractere A est a la position 4
*
Programmer en langage C
18
Les chaînes de caractères
Manipulation des chaînes de caractères
#include <stdio.h>
#include <string.h>
main() {
char str[10];
char *ptr = "ABCDEFGHIJ";
strcpy(str, ptr); printf("%s\n", str);
} /* résultat de l'exécution: ABCDEFGHIJ*/
#include <stdio.h>
#include <string.h>
main() {
char str[10]; �char *ptr = "ABCDEFGHI";
strncpy(str, ptr, 3);
str[3] = '\0';
printf("%s\n", str); } /* résultat de l'exécution: ABC */
*
Programmer en langage C
19
Les chaînes de caractères
Manipulation des chaînes de caractères
#include <stdio.h>
#include <string.h>
main() {
char *str = "E.N.A.C.";
printf("%d\n", strlen(str));} /* résultat de l'exécution: 8 */
#include <string.h>
#include <stdio.h>
main() {
char m1[60] = "Ecole superieure";
char *m2 = " de Technologie Essaouira";
strcat(m1, m2); printf("%s\n", m1); }
/* résultat de l'exécution: Ecole superieure de Technologie Essaouira*/
*
Programmer en langage C
20
Les chaînes de caractères