Les chaînes de caractères et le langage C

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation Informatique Appliquée
Advertisements

FLSI602 Génie Informatique et Réseaux
8. Les tableaux P. Costamagna – ISEN N1.
Points importants de la semaine Les pointeurs. Les chaînes de caractères.
Partie 1 Etude de l'existant
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
Etude de cas : buffer clavier
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-2000: Structures de données
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
8PRO100 Éléments de programmation Les types composés.
Les chaînes de caractères
LANGAGE C LP A2I IUT St DIE
Plan cours La notion de pointeur et d’adresse mémoire.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Les chaînes de caractères
8PRO100 Éléments de programmation Les pointeurs de caractères.
Chaînes de caractères en langage c, c'est en fait un tableau
Exercices.
LES TABLEAUX Définition: Création d’un tableau:
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Informatique 2A Langage C 4ème séance
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 20/09/2016 Algorithmique & Langage.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
1 Programmation en C++ IO en C++/SL. 2 Sortie à l’écran Exemple: #include int main () { std::cout
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 27/09/2016 Algorithmique & Langage.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Algorithmique & Langage C IUT GEII S1
Tableaux en C Mardi 2/05.
Le Langage JavaScript pour le web
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Langage C Structure d'un programme Types Lire Ecrire Tester
LES TABLEAUX EN JAVA.
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Allocation dynamique de mémoire
Pointeurs et langage C.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Algorithmique et programmation de modèles numériques
Rappels et présentation des supports de stockage
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Séances de soutien Projet informatique 2A
Semaine 11 Les pointeurs (suite)
Les fonctions.
Les fonctions.
Matrices, déclaration en CSharp
Buffer Overflow Anatomy of an exploit.
Tableaux à plusieurs dimensions en langage C
Algorithmique & Langage C
Semaine #6 INF130 par Frédérick Henri.
IFT1969 Programmation scientifique en C Michel Reid.
Programmation en C++ IO en C++/SL
Notions de pointeurs en C
Programmation en C++ C++ de base
Les structures en langage C
Calcul Scientifique Initiation à SCILB
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Cours Programmation en C. Traitement de l’information Catégorie d’information Les données Les résultats Les informations intermédiaires.
Principes de programmation (suite)
QCM Pointeurs 2 / Q1 On considère la déclaration suivante : char *ptc ; ptc peut contenir : 1) des valeurs de variables de type caractère 2) des adresses.
Python Nicolas THIBAULT
Transcription de la présentation:

Les chaînes de caractères et le langage C

Déclaration et initialisation Il n'existe pas de type chaîne en C Une chaîne de caractères est : Un tableau de caractères Terminée par un caractère de fin : '\0'

Stockage d'une chaîne code ascii Indice Tableau tabCar 66 1 65 .. 82 Elle peut être initialisée lors de sa déclaration avec une chaîne de caractères encadrée du symbole " char tabCar[]= "BAR"; ou char tabCar[]= { 'B', 'A', 'R', '\0' }; char tabCar[]= { 66, 65, 82, 0 }; Attention !!! Une chaîne de caractères initialisée à la déclaration n'est pas modifiable par la suite.

Représentation en mémoire Déclaration et initialisation simultanée: char message[]="bonjour";// occupe en mémoire 8 octets

Déclaration Sous forme de tableau : Sous forme dynamique : char chaine[TAILLEMAX] ; // ma chaîne pourra contenir au maximum TAILLEMAX-1 caractères Sous forme dynamique : char *chaine ; // chaine ne pourra pas être utilisé avant qu'un espace mémoire ne lui soit attribué.

Chaînes dynamiques Pour pouvoir utiliser les chaînes de caractères dynamiques, il faut réserver la place nécessaire en mémoire. char *chaine ; chaine = (char *)malloc(nombreDOctets*sizeof(char)) ; Exemple : chaine = (char *)malloc(5*sizeof(char)) ; chaine pourra recevoir une chaîne de caractères de 4 caractères.

Lecture et écriture Opérations de lecture au clavier habituelle : scanf, gets Opérations d'écriture de chaîne à l'écran : printf, puts

Fonctions de manipulation de chaînes Longueur d'une chaîne : strlen Concaténation de chaînes : strcat Comparaison de chaînes : strcmp(il n'est pas possible d'utiliser les opérateurs de comparaison ==, <, >, etc ) Copie de chaînes : strcpy (il n'est pas possible d'utiliser l'opérateur d'affectation = )

Exemple d'utilisation char *nom ; char buffer[TAILLEMAX] ; Pas de symbole & Taille de la chaine saisie char *nom ; char buffer[TAILLEMAX] ; printf("donnez votre nom "); scanf("%s",buffer); nom=(char*)malloc( (strlen(buffer)+1) * sizeof(char) ) ; strcpy(nom, buffer); printf("votre nom est : %s \n",nom); free(nom); Pour le \0 Copie de la chaîne saisie dans la variable nom Libération de l'espace mémoire réservé pour nom

Exemple d'utilisation

Conclusion Pas de type chaîne, mais un type « char * » Les opérateurs classiques ne peuvent pas être utilisés (affectation, comparaison) Il faut allouer dynamiquement de la place en mémoire pour stocker une chaîne (malloc) Il faut libérer la mémoire allouée lorsqu'on en a plus besoin (free).