Un tableau permet de stocker plusieurs valeurs d’un même type
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 9 | 22 | -1 | 7 | 2 | 9 | 3 | 6 | 8 |
Chaque emplacement du tableau permet de stocker une valeur
Une valeur stockée dans le tableau est un élément du tableau
On désigne aussi ce concept par les mots suivants:
La longueur du tableau est le nombre d’éléments du tableau
On désigne aussi ce concept par les mots suivants:
Chaque élément possède un index
Synonymes:
En pseudo-code:
1En C (et dans de nombreux autres langages):
0En pseudo-code:
tailleEn C (et dans de nombreux autres langages):
taille - 1)(taille du tableau moins 1)
Déclaration d’un tableau de 10 entiers:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
Tableau mon_tableau[10] d'entiers
En C (et d’autres langages):
int mon_tableau[10] ;Modification d’un élément d’un tableau de 10 entiers:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
mon_tableau[2] <-- 4
En C :
mon_tableau[2] = 4;Affichage d’un élément d’un tableau de 10 entiers:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
AFFICHER mon_tableau[2]
En C :
printf("%d, ", un_tableau[2]);forN <-- 10
POUR i ALLANT_DE 1 A N
DEBUT_POUR
mon_tableau[i] <-- i * i
FIN_POUR
forAffichage
POUR i ALLANT_DE 1 A N
DEBUT_POUR
AFFICHER mon_tableau[i]
FIN_POUR
#include <stdio.h>
int main () {
//Déclaration + initialisation
int un_tableau[10] = {};
//Parcours
for(int i = 0 ; i < 10 ; i ++ ) {
printf("%d, ", un_tableau[i]);
}
printf("\n");
return 0;
}int un_tableau[10] = {1, 2, 3};| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Utilisation typique avec une boucle for:
#include <stdio.h>
int main () {
//Déclaration + initialisation
int un_tableau[10] = {1, 2, 3};
//Parcours
for(int i = 0 ; i < 10 ; i ++ ) {
printf("%d, ", un_tableau[i]);
}
printf("\n");
return 0;
}Une chaîne de caractères permet de représenter un texte
char chaine[10]; // DANGER: chaine non initialisée| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
Une chaîne de caractères permet de représenter un texte
char chaine[10] = "Texte";| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
'T' |
'e' |
'x' |
't' |
'e' |
'\0' |
? | ? | ? | ? |
\0 est une valeur spéciale permettant de définir la fin
de la chaîne.
Une chaîne de caractères permet de représenter un texte
strcpy(chaine, "Texte") ; ;| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
'T' |
'e' |
'x' |
't' |
'e' |
'\0' |
? | ? | ? | ? |
\0 est une valeur spéciale permettant de définir la fin
de la chaîne.
char chaine[10] = "Texte" ;
printf("La chaîne vaut \"%s\"\n", chaine);Utilisation de la fonction strlen(char*)
char chaine[10] = "Texte" ;
printf("Longueur de la chaine: %lu\n", strlen(chaine));%lu représente ici un entier long non signé.
#include <stdio.h>
#include <string.h>
int main () {
//Déclaration
char chaine[80];
//Initialisation
strcpy(chaine, "Ceci est une chaîne initialisée après déclaration") ;
//Parcours
for(int i = 0 ; i < strlen(chaine) ; i ++ ) {
printf("%c, ", chaine[i]);
}
printf("\n");
return 0;
}#include <stdio.h>
int main () {
//Déclaration + initialisation
char *chaine = "Une chaine";
//Parcours
for(int i = 0 ; i < 10 ; i ++ ) {
printf("%c, ", chaine[i]);
}
printf("\n");
return 0;
}#include <stdio.h>
#include <string.h>
int main () {
//Déclaration
char chaine[80] = "Texte" ;
printf("La chaîne vaut \"%s\"\n", chaine);
printf("Longueur de la chaine: %lu\n", strlen(chaine));
//Initialisation
strcpy(chaine, "Ceci est une chaîne initialisée après déclaration") ;
printf("La chaîne vaut \"%s\"\n", chaine);
printf("Longueur de la chaine: %lu\n", strlen(chaine));
return 0;
}Affiche:
La chaîne vaut "Texte"
Longueur de la chaine: 5
La chaîne vaut "Ceci est une chaîne initialisée après déclaration"
Longueur de la chaine: 53
#include <stdio.h>
#include <string.h>
char* creer_chaine() {
char fin_de_chaine = '\0' ;
static char chaine[11] ;
char lettre = 115;
chaine[0] = lettre;
chaine[1] = fin_de_chaine;
for (int i = 0 ; i < 10 ; i ++ ) {
chaine[i] = lettre++;
}
chaine[10] = fin_de_chaine;
return chaine;
}
int main () {
char* chaine = creer_chaine();
printf("La chaine vaut \"%s\"\n", chaine);
for(int i = 0 ; i < strlen(chaine) ; i ++){
printf("Le caractère n°%d vaut: %c\n", i, chaine[i]);
}
return 0;
}