cours de langage c: chaines de caracteres
BIENVENUE SUR LE SITE DE LA TECHNOLOGIE.
Accueil                                  Livre d'or                                  Nous contacter                                             forum
Auteur
SAID MOHAMED

Membre

Vous n êtes pas connectés
Se connecter
s inscrire


Annonces

Ce site est destiné à tous les technologues, les étudiants scientifiques, les élèves scientifique et toute personne qui s'interesse de la nouvelle technologie.

  Tous ce que j'ai essayé de faire, c’est de vous donner les cours nécessaires dans le domaine de la technologie : électronique, informatiques et télécommunication .

   Tous mes cours sont gratuits alors il faut bien accepter et profiter cette offre si délicieuse.

les cours
électronique
analogique
numerique
de puissance

realisation des circuits électronique

informatique
programmation
microprocesseur
réseaux


télécommunications
téléinformatique
réseaux telecoms

système de télécommunication
^

chaines de caractères

Ici nous attaquons un chapitre un peu long que le précèdent et pourtant il n’est pas nouveau pour nous. Ah oui  L’expression chaîne de caractères, on l’a déjà entendu et  même on l’a utilisé dans nos cours précédents.
Je sais qu’il y a des gens qui se disent : « mais pourquoi on nous montre des cours avant leurs temps (le temps de les voir) ? »Eh bien ne vous paniquer pas ! Je ne suis pas fou si j’ai choisi de faire toujours comme ça. C’est ma méthode. Et d’ailleurs vous voyez qu’en vous vous trouvant devant un cours que vous connaissez au moins  quelque chose, vous ayez le courage de le lire et de le bien comprendre. Par contre si vous vous trouvez dans un cours 100% nouveau,  vous risquerez de vous fatiguer et de faire des bons sommes. .
 Ici, nous allons introduire des notions du tableau et de pointeur : des cours que nous allons voir dans le future.

 Si les mots caractères et chaîne de caractères sont nouveaux pour vous, je vous recommande de retourner lire les cours précédents.

Souvenez vous que je vous promet que la librairie standard, vous allez mieux la comprendre au fuir et à mesure ?  Ça fait longtemps que nous utilisons seulement stdio.h et stdlib.h. Eh bien dans ce chapitre, on va etudier quelques fonctions de  string.h.

  Voila maintenant je vous recommande d’aller lire le cours sur la manipulation de caractère et de chaînes de caractères avant de nous suivre car ça vous servira quelques chose ...

I) Variable caractère

1) Type char:

Char est un type de donnée numérique du langage C. il sert à stocker une lettre. Il faut 1 octet pour stocker une variable de type char.   [voir ici ]

2) déclaration :
Syntaxe : char nom_variable ;   exemple : char a ;

3) Initialisation :
Syntaxe : char nom_variable  = ‘caractère’ ;       Exemple : char lettre = ‘a’ ;

II) Chaînes de caractères
 

Avant  de continuer nous allons ouvrir une petite parenthèse sur les notions : tableau et pointeur.

 

Tableau :

   Par définition, un tableau est un ensemble d’emplacements mémoire qui portent le même nom et contiennent le même type de données.
Pour la déclaration, voici la syntaxe : type nom_tableau [index1] [index2]…

Les dimensions d’un tableau sont déterminées par le nombre d’index.
Exemple 1: int montableau [6] ;
Ici j’ai déclaré un tableau qui est montableau de 6 éléments. On a un seul index, donc montableau a une dimension.

Exemple 2 : int montableau [6] [8] ;  ici on a deux index donc un montableau a deux dimensions. montableau a 6 lignes et 8 colonnes. 

Pointeur:

Les pointeurs sont des variables qui ont pour valeur une adresse mémoire.

 

Dans ce tableau, on voit que a contient l’adresse de b. on dit que a est un pointeur vers b.

Maintenant qu’on a quelques notions de tableau et pointeur, on peut bien continuer notre cours.

 

     Une chaîne de caractère est une séquence de caractères qui se termine par le caractère nul ( \0). Pour créer une chaîne de caractères, il faut bien déclarer un tableau de type char.

exemple: char machaine[9]; chaine de 8 caractère, le dernier étant le caractère nul.

 

Eh bien ! Souvenons nous  de notre 2eme TP. Ah oui, je vous ai précipité mais le deuxième TP, on devrait le voir ici.

Je suis sure que rien ne sera difficile pour vous sur cette partie car on l’a déjà fait. Je vous recommande le  2eme TP car nous allons le réutiliser ici. 

1) Initialisation : 

Quelques méthodes d'initialisations  à travers des exemples :

exemple 1:   char chaine[12] = { 't','e','c','h','n','o','l','o','g','i','e'};
exmple 2:  char chaine[12] = " technologie";
exemple 3:
 char chaine[12];
chaine[0] = 't';
chaine[1] = 'e';
chaine[2] = 'c';

chaine[3] = 'h';
 
chaine[4] = 'n';
 
chaine[5]
= 'o';
chaine[6] = 'l';

chaine[7] = 'o';

chaine[8]
= 'g';
chaine[9]
= 'i'
chaine[10]
='e';
chaine[11]='\0'  

char chaine[12] est la déclaration  d'un tableau de12 caractère  pour stocker "technologie + le caratère nul ( \0)".
 

2) Utilisation avec un pointeur.

Pour accéder à une chaîne de caractères définie par un tableau de caractères, on utilise le nom du tableau sans les crochets (pointeur vers le premier caractère de la chaîne).

Exemple : char machaine[12] = " technologie";

machaine est un pointeur vers le début de la chaîne. La fin de la chaîne est représentée par le caractère nul.

3) Chaîne et allocation de mémoire:

Il est possible de créer une chaîne de caractère sans utiliser un tableau de caractères. Pour cela on définit un pointeur vers le début de chaîne et on place le caractère nul enfin de chaîne. Il y a 2 méthodes :

a)     
allocation de mémoire pour une chaîne littérale :

La mémoire est allouée au moment de la compilation du programme. L’emplacement mémoire est géré par le compilateur.
 Exemple : char *exp = " technologie " ;

b) Allocation dynamique

La mémoire est allouée un moment de l’exécution pour programme. On utilise pour cela la fonction malloc.
La fonction malloc permet de réserver l’espace mémoire.

Syntaxe : #include<stdio.h>
Void *malloc(taille) ;

Usage de malloc :

-Déclaration d’un pointeur
-Initialisation du pointeur a la valeur renvoyée par malloc.

 Exemple :

Char *technologie ;
technologie = malloc(12) ;
technologie pointe sur un bloc de 12 octets qui peut recevoir une chaîne de caractère.

III) Affichage de chaînes de caractères 

   Nous avons appris comment utiliser la fonction puts et printf. Pour cela je préfère illustrer cette partie juste par des exemples.

1) la fonction puts:

exemple:

                                                                  code C/C++:

#include<stdio.h>
#include<stdlib.h>
 main()
 { char *exp = "technologie";
 puts(exp);
 system("pause");
 return 0;
}
Avec ce code, nous aurons le mot technologie qui s'affichera sur l'ecran.

2) la fonction printf:

exemple 1:
                                                                  code C/C++:
#include<stdio.h>
#include<stdlib.h>
 main()
 { 
char *exp = "technologie";
 printf ("%s\n",exp);
 system("pause");
 return 0;
}
 

exemple 2:

 
#include<stdio.h>
#include<stdlib.h>
 main()
 { char chaine[12];
chaine[0] = 't';
chaine[1] = 'e';
chaine[2] = 'c';

chaine[3] = 'h';
 
chaine[4] = 'n';
 
chaine[5]
= 'o';
chaine[6] = 'l';

chaine[7] = 'o';

chaine[8]
= 'g';
chaine[9]
= 'i';
chaine[10]
='e';
chaine[11]='\0';

 printf ("%s\n",chaine);
 system("pause");
 return 0;
}
 

 

Vous voyez très bien que tous nos exemples de la fonction puts et printf nous donnent comme résultat cette console.

IV) Lecture de chaînes de caractères :

 

1) la fonction gets: 

  Cette fonction lit une chaîne de caractères entrée au clavier. Elle ajoute le caractère nul en fin de chaîne et renvoie la chaîne au programme.

syntaxe: include<stdio.h>
              char *gets (char *str);

exemple:  

 code C/C++

#include<stdio.h>
 main()
 { char l[12];
 gets(l);
}

2) la fonction scanf: 

exemple:

code C/C++
#include<stdio.h>
#include<stdlib.h>
main()
{char l[12];
printf(" quel est ton nom?\n");
scanf("%s",l);
system("pause");
return 0;
}

 

V)  Manipulation de chaînes de caractères <string.h>

Pour la manipulation de chaînes de caractères, il faut toujours  utiliser :  #include< string.h>.  
les fonctions de manipulation de chaînes de caractères . 

        Les fonctions sont biens expliquées dans le tableau, pour cela on va vous donner juste deux exemples pour que vous ayez l’image de leur utilisation.

exemple 1.

code C/C++  

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{   
  char l[45];
  char k[45];
  printf(" quel est ton nom?\n");
scanf("%s",l);// on recupère le nom saisi en tant que l.
strcpy(k, l);//on copie l  dans k . donc k va contenir le même mot que l.
printf("tu t'appelles %s\n", k);// on affiche k.

system("pause");
return 0;

}

      Voici  le résultat de la console:

exemple 2:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{   
  char l[45];
  char k[45];
  printf(" quelles sont les  premieres lettres du nom de ton pays?\n");
scanf("%s",l);// on recupère les premieres  lettres saisies en tant que l.
 printf(" et les lettres restant?\n");
 scanf("%s",k);// on recupère les lettres restant  en tant que k.
strcat(l, k);//on copie k a la fin de l  . donc l va contenir l+k.
printf("ah!tu viens de %s\n", l);// on affiche l.

system("pause");
return 0;

}

le résultat du fichier executable :


fin!

Il y a actuellement 2 visiteurs connectés sur le site de la technologie !





|Copyright © Samomoi Technos | Chartes du site | Facebook|    Twitter