1 Les caractères En informatique, les caractères sont très importants puisqu’ils sont utilisés pour la communication personne-machine. Puisque les ordinateurs.

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Développement logiciel sur micro-contrôleurs PIC en C
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
GEF 243B Programmation Informatique Appliquée
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
(Classes prédéfinies – API Java)
Cours 5.3 : XML et les architectures N-tiers – Tier Présentation
C.
FLSI602 Génie Informatique et Réseaux
FLSI602 Génie Informatique et Réseaux
Points importants de la semaine Les pointeurs. Les chaînes de caractères.
Points importants de la semaine Les caractères. Les chaînes de caractères.
Langage de Programmation: I - Le Langage C -
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
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.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Les fichiers binaires en C++
Programmation Initiation Aux Langages C et C++ (2) Bruno Permanne 2006.
CHAINE DE CARACTERES : Définition :
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
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.
IFT 6800 Atelier en Technologies d’information
8PRO100 Éléments de programmation Les chaînes de caractères.
Standard Template Library
Les chaînes de caractères
LANGAGE C LP A2I IUT St DIE
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Types de données fondamentaux
Faculté Polytechnique de Mons
L’essentiel du langage C
Animateur : Med HAIJOUBI
Introduction au C.
Le langage C Structures de données
2.1 - Historique Chapitre 2 : Introduction au langage C++
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
SIF-1053 Architecture des ordinateurs
Les types.
8PRO107 Éléments de programmation Les chaînes de caractères.
Un survol du language 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 classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
8PRO100 Éléments de programmation Les pointeurs de caractères.
Chaînes de caractères en langage c, c'est en fait un tableau
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
Langage de programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
PRO-1027 Programmation Scientifique en C
Les chaînes de caractères
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Chapitre 5 La représentation des données
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Introduction au langage C
Le codage des nombres en informatique
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
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.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Programmation en C++ C++ de base
Transcription de la présentation:

1 Les caractères En informatique, les caractères sont très importants puisqu’ils sont utilisés pour la communication personne-machine. Puisque les ordinateurs ne peuvent manipuler que des séquences de bits. les caractères doivent être encodés en binaire. Un des codes les plus utilisés est le code ASCII. Chaque caractère est encodé à l’aide de 8 bits: ce qui donne 256 possibilités.

! 34" 35# 36$ 37% 38& 39' 40( 41) 42* , / : 59; 60< 61= 62> 63? Le code ASCII

3 96` 97a 98b 99c 100d 101e 102f 103g 104h 105i 106j 107k 108l 109m 110n 111o 112p 113q 114r 115s 116t 117u 118v 119w 120x 121y 122z 123{ 124| 125} 126~ A 66B 67C 68D 69E 70F 71G 72H 73I 74J 75K 76L 77M 78N 79O 80P 81Q 82R 83S 84T 85U 86V 87W 88X 89Y 90Z 91[ 92\ 93] 94^ 95_ Le code ASCII

4 128€ 129 130‚ 131ƒ 132„ 133… 134† 135‡ 136ˆ 137‰ 138Š 139‹ 140Œ 141 142Ž 143 144 145‘ 146’ 147“ 148” – 151— 152˜ 153™ 154š 155› 156œ 157 158ž 159Ÿ ¡ 162¢ 163£ 164¤ 165¥ 166¦ 167§ 168¨ 169© 170ª 171« 172¬ 173­ 174® 175¯ 176° 177± 178² 179³ 180´ 181µ 182¶ 183· 184¸ 185¹ 186º 187» 188¼ 189½ 190¾ 191¿

5 240ð 241ñ 242ò 243ó 244ô 245õ 246ö 247÷ 248ø 249ù 250ú 251û 252ü 253ý 254þ 255ÿ 192À 193Á 194Â 195Ã 196Ä 197Å 198Æ 199Ç 200È 201É 202Ê 203Ë 204Ì 205Í 206Î 207Ï 208Ð 209Ñ 210Ò 211Ó 212Ô 213Õ 214Ö 215× 216Ø 217Ù 218Ú 219Û 220Ü 221Ý 222Þ 223ß 224à 225á 226â 227ã 228ä 229å 230æ 231ç 232è 233é 234ê 235ë 236ì 237í 238î 239ï

6 Les constantes de type caractère En C une constante de type caractère est un nombre entier écrit sous la forme d’un caractère entre apostrophes, comme ‘a’. La valeur d’une constante de type caractère est égale à la valeur du caractère d’après le jeu de caractère de la machine (ex. ASCII). Exemples: ‘a’ vaut 97 ‘A’ vaut 65 ‘B’ vaut 66 ‘0’ vaut 48

7 Les séquences d ’échappement ‘\a’caractère d’alerte (sonnerie, bell) ‘\b’retour en arrière (backspace) ‘\f’saut de page (formfeed) ‘\n’fin de ligne (newline) ‘\r’retour de chariot (carriage return) ‘\t’tabulation horizontale ‘\v’tabulation verticale ‘\\’backslash ‘\?’point d ’interrogation ‘\’’apostrophe ‘\” ’guillemet ‘\ooo’nombre octal ‘\xhh’nombre hexadécimale

8 Les constantes de type chaîne Un constante de type chaîne est une séquence de caractères, éventuellement vide, placée entre guillemets. Exemple: “Je suis une chaîne ” “Bonjour groupe!\n” “Comment allez-vous\?\n” Note: Les guillemets ne font pas partie de la chaîne.

9 Les variables de type caractère Pour déclarer une variable de type caractère, on procède de la façon suivante: char c1; /* c1 est une variable de type caractère */ char c2 = ‘a’;/* c2 est une variable de type caractère initialisée au racatère ‘a’ */

10 Les entrées et sorties #include /* fichier d’entête pour le C++ */ main(){ char c; cin >> c; cout << c; } #include /* fichier d’entête pour le C */ main(){ char c; c = getchar(); putchar(c); }

11 Les entrées et sorties int getchar(void) Retourne le caractère suivant (converti en un int). retourne EOF si la fin du fichier est atteinte ou si une erreur survient. int putchar(char c) Écrit le caractère c. Retourne le caractère écrit ou bien EOF en cas d’erreur. Le fichier d’entête stdio.h: Contient la déclaration des fonctions standards d’entrée et de sortie. Contient aussi la définition de EOF (End of file).

12 Exemple 1: Copier des fichiers #include /* copie l’entrée sur la sortie, première version */ main(){ int c; c = getchar(); while (c != EOF) { putchar(c); c = getchar(); }

13 Exemple 1: Copier des fichiers #include /* copie l’entrée sur la sortie; première version*/ main(){ int c; c = getchar(); while (c != EOF) { putchar(c); c = getchar(); } Pourquoi un int?

14 Exemple 1: Copier des fichiers La valeur retourné par getchar() peut être un des 256 caractères ASCII OU la valeur EOF La fonction getchar() peut donc retourner 257 valeur possibles. Mais un char est un entier de 8 bits et ne peut donc représenter que 256 valeurs possibles. On doit donc utiliser plus de bits (et donc un int) pour faire la différence entre un caractère et EOF.

15 Exemple 1: Copier des fichiers Exemple: Sur SUNCHB un int est un entier de 32 bits et EOF s’écrit en binaire de la façon suivante: bits Lorsqu’on met EOF dans une variable de type char on ne met que les 8 premiers bits, c’est-à-dire = 255 Le caractère dont la valeur est 255 est: ÿ

16 Exemple 1: Copier des fichiers #include /* copie l’entrée sur la sortie, seconde version */ main() { int c; while ((c=getchar()) != EOF) putchar(c); }

17 Exemple 2: Compter les caractères #include /* La fonction nbcar compte les caractères en entrée */ int nbcar() { int nc; nc = 0; while (getchar() != EOF) nc = nc + 1; return (nc); }

18 Exemple 3: Compter les lignes #include /* La fonction nblignes compte les lignes en entrée */ int nblignes() { int c, nl; nl = 0; while ((c=getchar()) != EOF) if (c == ‘\n’) /* En fait on compte le nombre de */ nl = nl + 1; /* changement de lignes */ return nl; }

19 Compter les mots #include #define DEDANS 1 /* à l’intérieur d’un mot */ #define DEHORS 0 /* à l’extérieur d’un mot */ /* La fonction nbmots compte les mots en entrée */ int nbmots(){ int c, nm, etat; nm = 0; etat = DEHORS; while ( (c=getchar()) != EOF ) if ( (c == ‘\n’) || (c == ‘ ‘) || (c == ‘\t’) ) etat = DEHORS; else if (etat == DEHORS) { etat = DEDANS; nm = nm + 1; } return nl; }

20 ctype.h Le fichier d’entête ctype.h contient la déclaration de fonctions destinées à tester les caractères: isdigit(char c) retourne 1 si c’est un chiffre, 0 sinon is lower(char c) retourne 1 si c’est une lettre minuscule, 0 sinon isupper(char c) retourne 1 si c’est une lettre majuscule, 0 sinon isalpha(char c) retourne 1 si c’est une lettre, 0 sinon et plusieurs autres.

21 Exemple 5: isdigit(c) #include int isdigit(char c){ return ( (c >= ‘0’) && (c <=‘9’) ); }

22 Exemple 6: islower(c) #include int islower(char c){ return ( (c >= ‘a’) && (c <=‘z’) ); }

23 Exemple 7: isupper(c) #include int isupper(char c){ return ( (c >= ‘A’) && (c <=‘Z’) ); }

24 Exemple 8: isalpha(c) #include int isalpha(char c){ return ( islower(c) || isupper(c)); }

25 Remarques Les exemples 5 à 8 pourraient ne pas fonctionner correctement sur un système utilisant un code autre que le code ASCII Dans ctype.h, ces fonctions prennent un int comme paramètre.

26 Les chaînes de caractères En C il n’y a pas de variable de type chaîne de caractères. Une chaîne de caractère est un tableau de caractères se terminant par le caractère \0 (le caractère nul ayant la valeur 0) Ainsi la chaîne “Bonjour groupe!” serait représentée de la façon suivante: Bornjuogr oupe!\

27 Exemple 9: Lire une ligne #include /* lireligne: lit une ligne dans s, retourne sa longueur qui doit être au plus lim-1 */ int lireligne( char s[], int lim) { int c, i; for (i=0; i< lim-1 && (c=getchar())!=EOF && c!= ‘\n’; i=i+1) s[i] = c; if (c==‘\n’) { s[i]=c; i = i + 1; } return i; }

28 Exemple 10: Copier une chaîne #include /* copier: copie ‘de’ dans ‘vers’ ; on supose que le tableau vers est assez long */ void copie( char de[], char vers[]) { int i; i = 0; while ( (vers[i] = de[i]) != ‘\0’) i = i + 1; }

29 Exemple 11: Comparer 2 chaînes #include /* compare: Retourne -1, 0, ou 1 selon que chaine1 est lexicographiquement plus petite, égale ou plus grande que chaine2. void compare( char chaine1[], char chaine2[]) { int i; i = differe_ou(chaine1, chaine2);/* differe_ou retourne la première position où chaine1 et chaîne2 diffèrent. */ if ( chaine1[i] < chaine2[i] ) return -1; else if ( chaine1[i] > chaine2[i] ) return 1; else return 0; }

30 Exemple 11: Comparer 2 chaînes #include /* differe_ou: Retourne la première position où chaine1 et chaîne2 diffèrent. Retourne la position du caractère ‘\0’ si les deux chaînes sont égales. */ int differe_ou( char chaine1[], char chaine2[]) { int i; i = 0; while ( chaine1[i] != ‘\0’ && chaine1[i] = =chaine2[i]) i = i + 1; return i; }

31 string.h Le fichier d’entête string.h contient des déclarations de fonctions permettant de manipuler des chaînes de caractères. strcpy(char[], char[])copie la première chaine dans la seconde strcat (char[], char[])concatène les deux chaînes strcmpr (char[], char[])compare deux chaînes int strlen(char[])retourne la longueur d’une chaîne et beaucoup d’autres.