Chaines - Le type caractre (char) Les chanes de caractres...

Info iconThis preview shows pages 1–12. Sign up to view the full content.

View Full Document Right Arrow Icon
Le type caractère (char) Les chaînes de caractères
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Les chaînes de caractères Nous avons déjà vu des chaînes de caractères dans les instructions printf : printf("bonjour"); "bonjour" correspond à une chaîne formée de 7 caractères: b , o , n , j , o , u , r . Les chaînes que nous avons vues jusqu'ici sont des constantes . Il faut parfois disposer de variables chaînes de caractères. En C++ (et dans d'autres langages), il existe un type "chaîne de caractères", pas en C: En C, une chaîne de caractères est simplement un tableau de caractères . Nous allons voir: - le type caractère , - les tableaux de caractères , - les fonctions C sur les tableaux de caractères.
Background image of page 2
Le type caractère (révision)
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 Le type caractère char Le type char permet de représenter un caractère une lettre, un chiffre, un symbole comme * - + { } Déclaration de variables de type char : char c1, c2; Initialisation d'une variable de type char . Par exemple: c1 = ' s ' ; affecte à la variable c1 le caractère s , noté entre apostrophes ' (ou simples cotes). (les chaînes de caractères sont notées entre guillemets " -- doubles cotes) Affectation: c2 = c1;
Background image of page 4
5 Comme pour int ou float : Affichage: char c = 's'; printf("Le caractere est %c.\n", c); on obtient: Le caractere est s. Lecture: char c1; scanf(" %c ",&c1); printf("Vous avez tape %c \n ",c1); Entrées/Sorties pour les variables de type char
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
6 Attention Entrer un caractere : q Vous avez tape q. Entrer un deuxieme caractere : Vous avez tape . #include <stdio.h> int main(int argc, char ** argv) { char c1, c2; printf("Entrer un caractere : "); scanf("%c",&c1); printf("Vous avez tape %c.\n",c1); printf("Entrer un deuxieme caractere : "); scanf("%c",&c2); printf("Vous avez tape %c.\n",c2); }
Background image of page 6
7 Que se passe t'il? Quand on fait un scanf , l'information tapée au clavier est placée dans une zone mémoire particulière appelée tampon. scanf va lire dans ce tampon. Séparateurs: scanf(" %d ",…) ou scanf(" %f ",…) saute tous les séparateurs (espace ou retour à la ligne \n ) précédents une valeur jusqu'à ce qu'il trouve une valeur entière ou réelle, Le scanf(" %c ",…) ne saute pas les séparateurs scanf("%d%c",&a,&b); si je rentre : 12 a On aura: a=12, b=' ' si je rentre : 12 a On aura: a=12, b=' '
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
8 fonction scanf D'une manière générale la fonction scanf explore le tampon jusqu'à ce qu'elle ait rencontré: Un séparateur : " ", "\n" Gabarit maximal atteint %3d: entier sur 3 chiffres Un caractère invalide (@ alors qu'un entier est attendu) Mais elle n'enlève pas ce qu'elle n'a pas "consommé" du tampon
Background image of page 8
Exemple #include <stdio.h> int main( int argc, char **argv) { int a; int b; char c; scanf("%d",&a); scanf("%c",&c); printf("%d %c",a,c); return 0; } 9 si je rentre: 12 a On aura: a=12, b=' ' Si je rentre : EEEE12w On aura: a=12, b='w' E: espace
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
10 Comment faire? Un espace dans le format dit au scanf de sauter tous les séparateurs: scanf("%d %c",&a,&b); Si je tape: 12 a (2 espaces entre 12 et a) ou 12 ↵↵↵↵↵ a On aura: a=12, b='a' int main(int argc, char ** argv) { char c1, c2; printf("Entrer un caractere : "); scanf("%c",&c1); printf("Vous avez tape %c.\n",c1); printf("Entrer un deuxieme caractere : "); scanf(" %c",&c2); printf("Vous avez tape %c.\n",c2); }
Background image of page 10
11 Fonction scanf
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 12
This is the end of the preview. Sign up to access the rest of the document.