Un tableau, c'est une structure qui te permet de stocker plusieurs éléments du même type. Par exemple, si je veux stocker 10 entiers, je vais déclarer un tableau de 10 entiers comme ceci:
Pour accéder au 1er entier du tableau, je dois aller "à la case 0":
Le dernier élément de ce tableau se trouve donc à la case "9":
Une chaîne de caractère, c'est un tableaux qui contient ... des caractères. Un caractère est représenté par le type 'char'. Ce qui différencie un tableau classique d'une chaîne de caractère, c'est que celui-ci contient toujours le caractère spécial '\0', qui indique que les autres cases du tableau sont inutilisées.
Par exemple, je peux créer une chaîne de caractère 'str' qui contiendra le mot 'hedg.fr' comme ceci:
Code : Tout sélectionner
char str[10];
str[0] = 'h';
str[1] = 'e';
str[2] = 'd';
str[3] = 'g';
str[4] = '.';
str[5] = 'f';
str[6] = 'r';
str[7] = '\0';
Mon tableau peut contenir jusqu'à 9 caractères (car il faut réserver une place pour le '\0'), mais ici je n'en ai utilisé que 7, parce que 'hedg.fr' ne contient que 6 caractères.
Si on faisait ça comme ça, ça serait très chiant (mettre les caractère 1 par 1, c'est pas pratique). Du coup, on a ajouté une manière plus commode de le faire:
L'ordinateur va automatiquement créer un tableau de caractères assez grand pour contenir la chaîne "hedg.fr" et le caractère '\0'.
Mais les tableaux ont un gros défaut: tu dois en fixer la taille à l'avance. Tu ne peux par exemple pas faire
parce que 'n' est une variable. Si la taille de ton tableau peut varier d'une exécution à l'autre, il faudra alors l'allouer dynamiquement (mais ça, tu le verras quand tu aborderas les pointeurs).
Ca me fait penser qu'il y a une petite faute dans le code que je t'ai donné:
devient
Code : Tout sélectionner
int dormir = 1500;
char vraiMdp[] = "CocaCola";
char mdp[100];
Sinon l'ordinateur ne comprendra pas qu'il doit créer un tableau pour stocker "CocaCola". Quant à
"char mdp[100]", il faut que tu te donnes initialement un tableau suffisamment grand que pour pouvoir stocker le mot de passe saisi par l'utilisateur (ici, l'utilisateur ne pourra pas saisir un mot de passe de plus de 99 caractères).
J'ai édité mon post pour corriger cette erreur
.