5-Chaine de Caractères

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 17

Module: Programmation I

Filière: SMA-S3

Chaine de caractères
Pr. Issam QAFFOU
Laboratoire Ingénierie des Systèmes d’Information
Département d’Informatique
FSSM-UCA

Version 2015/2016
(Automne)
Introduction
• Dans les chapitres précédents, nous avons manipulé des
variables contenant des valeurs numériques (int, float,
double, etc.).
• Nous avons vu le type char pour déclarer des variables
contenant un seul caractère.
• Dans ce chapitre, nous verrons comment combiner ces
caractères pour écrire des phrases et les affecter à une
variable.
• Il n’y a pas de type propre au chaines de caractères, mais on
utilise le type char.
• Puisqu’une chaine de caractères est une suite de caractères
concaténés alors on peut utiliser un tableau de type char.
19/10/2015 Programmation I 2
Type char
• Le type char permet de stocker un seul caractère, mais puisque l’ordinateur ne
comprend que des chiffres ces caractères sont transformés en chiffre. Voir
table ASCII.
• C’est pourquoi on dit le type char stocke des nombres compris entre -128 et
127.
• Vous pouvez vérifier ceci par le code suivant:
int main()
{
char lettre = ‘B';
printf("%d\n", lettre);
return 0;
}

• Le résultat affiché est un chiffre, c’est 66.


• Pour afficher le caractère ‘B’ dans l’exemple précédent on doit remplacer %d
par %c.
19/10/2015 Programmation I 3
Chaine de caractères
• Dans le langage C, il n’existe pas de type propre aux
chaines de caractères comme string ou chaine.
• Une chaine de caractères est représentée en C par un
tableau de type char dont chaque élément du tableau
stocke un caractère.
• Pour indiquer la fin de la chaine du caractère au
tableau on doit mettre à sa fin ‘\0’.
• Oublier ce caractère de fin de chaine de caractères est
une source d’erreur.
• Il faut toujours prévoir une case vide à la fin du tableau
pour ce caractère.
19/10/2015 Programmation I 4
Chaine de caractères
Création et initialisation
• On peut initialiser une chaine de caractères lors de sa création:
– En écrivant toute la chaine entre guillemets
– En initialisant chaque élément du tableau par un caractère.
Exemple 1
• char ch[16] = "Bonjour SMA-S3!"
• Cette chaine est représentée par un tableau de 16 caractères
dont le dernier élément est ‘\0’.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

B o n j o u r S M A - S 3 ! \0

19/10/2015 Programmation I 5
Chaine de caractères
• Exemple 2 char mot [4]; //déclaration

//Initialisation
Plus lourd!! Pas mot [0] =‘S’;
pratique mot [1] =‘M’;
mot [2] =‘A’;
mot [3] =‘\0’;
• Exemple 3

//comme un tableau
char txt [ ] = { 'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0' }; Plus simple et plus
pratique
// spécifique aux chaîne de caractères
// le caractère de fin de chaîne est géré automatiquement
char ch [200] = "Bonjour" ;
//le ‘\0’ est rajouté automatiquement

19/10/2015 Programmation I 6
Chaine de caractères
Lecture d’une chaine de caractères
• On peut initialiser une chaine de caractères par la fonction scanf() en
utilisant %s pour le format correspondant.
• N.B: On ne peut pas affecter une chaine en dehors de sa déclaration, ni
affecter une chaine à une autre.
Exemple Résultat
#include <stdio.h>
#include <stdlib.h>

int main()
{
char filiere[1]; char txt1[8] ;
printf("Quelle est votre filiere? "); char txt2[]="Salut";
scanf("%s", &filiere); txt1= "bonjour"; // Impossible
printf("Vous avez saisi: %s", filiere); txt1=txt2; // Impossible
return 0;
}
19/10/2015 Programmation I 7
Chaine de caractères
Fonctions de manipulation
• On peut:
– comparer deux chaines de caractères,
– calculer la longueur d’une chaine,
– concaténer deux chaines,
– etc.
Pour ce faire, on utilse des fonctions.
• Tout d’abord, pour utiliser n’importe quelle fonction il faut
inclure la bibliothèque correspondante. Comme on fait
pour printf(), scanf(), pow(), etc.
• La bibliothèque qu’il faut inclure pour les chaines de
caractères est string.h
19/10/2015 Programmation I 8
Chaine de caractères
Quelques fonctions importantes

1- Copie de chaîne (strcpy) :


• Cette fonction copie une chaine
(ch2) dans une autre (ch1), le
résultat sera la chaine copiée
(ch2).
• Syntaxe :
char strcpy(char ch1, char ch2);
• Exemple:
• Salut sera copié dans mot1 en
écrasant bonjour.
19/10/2015 Programmation I 9
Chaine de caractères
2- Copie partielle de chaîne (strncpy) :
• Cette fonction a le même principe
que strcpy() sauf qu’elle copie
jusqu'à n premiers caractères de la
chaîne source (ch2) dans la
chaîne cible (ch1).
• Syntaxe :
• char strncpy(char ch1, char ch2, nbr);
• NB: Il ne faut pas oublier d’ajouter le
caractère de fin de chaine de
caractères.
• Voir l’exemple ci-contre.
19/10/2015 Programmation I 10
Chaine de caractères
3- Longueur d'une
chaîne (strlen) :
• Cette fonction retourne en
entier le nombre de
caractères existant dans une
chaine.
• N.B. elle ne compte pas le ‘\0’
• Syntaxe :
• taille strlen(char ch);
• Voir l’exemple ci-contre.

19/10/2015 Programmation I 11
Chaine de caractères
4- Concaténation de chaîne (strcat) : Exemple
• Cette fonction copie la chaîne source à
la fin de la chaîne cible (concaténation
de chaînes).
• La longueur de la chaîne résultante
est strlen(cible) + strlen(source).
• Syntaxe :
• char strcat(char ch1, char ch2);
• Le résultat sera dans ch1.
• N.B. si vous précisez les tailles des
tableaux, celle de ch1 doit être
suffisamment grande pour contenir
ch2
19/10/2015 Programmation I 12
Chaine de caractères
• 5- Comparaison de chaînes (strcmp) :
Exemple
• Cette fonction compare deux chaines
en débutant avec le premier caractère
de chaque chaîne et continuant avec
les suivants, jusqu'à ce que des
caractères de même rang soient
différents ou que l'une des chaînes soit
terminée.
• Valeur retournée :
– une valeur négative si ch1 < ch2
– une valeur nulle si les deux chaînes sont
égales
– une valeur positive si ch1 > ch2
• Syntaxe : int strcmp( char ch1, char
ch2);
19/10/2015 Programmation I 13
Chaine de caractères

19/10/2015 Programmation I 14
Chaine de caractères

19/10/2015 Programmation I 15
Chaine de caractères

19/10/2015 Programmation I 16
Chaine de caractères

19/10/2015 Programmation I 17

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy