Vous êtes sur la page 1sur 14

Programmation en C

Les types composés:


Chaînes de caractères et structures

Bayar Nawel
(bayarnawel86@gmail.com)

Année universitaire: 2021-2022


Plan
1. Déclaration et initialisation des chaînes de caractères
2. Lecture et écriture des chaînes de caractères
3. Fonctions sur chaînes de caractères
4. Fonctions sur caractères
5. Exercice d’application
6. Les enregistrements-structures

2 ENISo 2021-2022
Déclaration et initialisation des chaînes de
caractères
Déclaration
Char <Nom_Chaine>[<dimention>]
Exemple
char nom[20] ;
char texte[255];
Initialisation
Char ch[8]= « Bonjour »;
Char ch[]= « Bonjour »;

3 ENISo 2021-2022
Déclaration et initialisation des chaînes de
caractères
Toutes les chaînes en c se terminent par le caractère de
fin de chaîne ‘\0’ de code ASCII 0.
Il faut toujours prévoir une case supplémentaire lors
de la déclaration d’une chaîne.
Char Ch[8]=« Bonjour »;
ÞChar Ch[8]= {‘B’, ’o’, ‘n’, ‘j’ , ‘o’, ‘u’ , ‘r’};
ÞCh[0] -> ‘B’
Ch[6] -> ‘r’
Ch[7] -> ‘\0’

4 ENISo 2021-2022
Lecture et écriture des chaînes de caractères
La lecture d’une chaîne de caractère est possible avec:
- scanf(‘‘%s’’, ch) : On peut ne pas mettre & pour stocker
la chaîne. Ch est elle-même une @.
- gets(ch): On l’utilise pour récupérer une chaîne de
caractère avec des espaces.
Exemple
Au clavier, on tape « Il pleut », on la récupère de la sorte:
- scanf(‘‘%s %s’’, ch1,ch2) ;
- gets(ch);

5 ENISo 2021-2022
Lecture et écriture des chaînes de caractères

L’écriture d’une chaîne de caractère est possible avec:


- printf(‘‘%s’’, ch) ;
- Puts (ch);  printf (‘‘%s\n’’, ch)

6 ENISo 2021-2022
Fonctions sur chaînes de caractères
strlen (ch): retourne un entier qui indique la longueur de la
chaîne « ch » sans compter le caractère ‘\0’.
strcat(ch1,ch2): permet de concaténer ch2 à ch1 et met le
résultat dans ch1.
strcpy(ch1,ch2): copie ch2 dans ch1.
Exemple
Char Ch1[8]= ‘‘Bonjour’’
Char Ch2[3]= ‘‘de’’
strcpy(ch1,ch2)  ch1 : d e \0 j o u r \0
ch2 : de \0
Printf (‘‘%s’’, ch1); affiche de
strcat(ch1,ch2)  Printf (‘‘%s’’, ch1); affiche Bonjourde
7 ENISo 2021-2022
Fonctions sur chaînes de caractères
Strcmp (ch1,ch2): Compare ch1 à ch2 et retourne un
entier:
- Positif si ch1>ch2
- Nul si ch1=ch2
- Négatif si ch1<ch2
Exemple
If(strcmp(ch1,ch2 )==0) printf (‘‘Les deux chaînes sont
égales’’);
Else printf (‘‘Les deux chaînes sont différentes’’);

8 ENISo 2021-2022
Fonctions sur les caractères
 isupper(c): retourne 1 si c est majuscule ; 0 sinon

 islower(c): retourne 1 si c est minuscule ; 0 sinon

 isdigit(c): retourne 1 si c est un chiffre ; 0 sinon

 isalpha(c): retourne 1 si c est alphabétique ; 0 sinon

 isspace(c): retourne 1 si c est un espace ; 0 sinon

 toupper(c): convertit c en majuscule


 tolower(c) : convertit c en minuscule

9 ENISo 2021-2022
Exercice d’application
Proposer un programme qui vérifie si un mot (une chaîne
de caractères) est un Palindrome. Un palindrome est un
mot que l’on peut lire dans les deux sens.

Écrire une fonction qui à une chaîne de caractères


retourne le nombre de caractères distincts que celle-ci
contient.

Ecrire un programme qui demande à l’utilisateur de taper


un mot formé uniquement par des chiffres.

10 ENISo 2021-2022
Les enregistrements – structures
un enregistrement est une structure de données qui
rassemble plusieurs champs, ceux-ci contenant des
valeurs qui peuvent être de types différents.

Déclaration Exemple
struct <nom-struct> struct etudiant
{ {
type 1 champ1; char nom[20];
… char prenom [15];
type 2 champ n; int cin;
}; };

11 ENISo 2021-2022
Les enregistrements – structures

Accès Exemple
e.nom;
<var>.<champ> //Accés au nom d’un
étudiant e.

Classe[i].prenom
//Accés au prenom d’un
étudiant e situé dans un
tableau remplie
d’étudiants.

12 ENISo 2021-2022
Les enregistrements – structures

Structure imbriquée

C’est une structure qui contient un champ de type structure.

Exemple : Une structure personne contenant comme


champs: nom, CIN et naissance. Avec naissance est une
structure contenant les champs: jour, mois et année.
L’accès au champs de naissance se fait par :
p.naissance.jour ; avec p est une variable de type struct
personne.

13 ENISo 2021-2022
Les enregistrements – structures

Exercice

Proposer un programme permettant de remplir un tableau


par des personnes.
Sachant qu’une structure personne contient comme champs:
nom, CIN et date naissance. Avec date est une structure
contenant les champs: jour, mois et année.

14 ENISo 2021-2022

Vous aimerez peut-être aussi