Corrections
Mémo / classicos
Obtenir la taille d'une chaîne
// Une chaîne "bonjour" est représenté sous forme de tableau
// en mémoire, avec un caractère '\0' pour spécifier la fin
// de la chaîne :
//
// +---+---+---+---+---+---+---+----+
// | b | o | n | j | o | u | r | \0 |
// +---+---+---+---+---+---+---+----+
char *chaine = "bonjour";
int taille = 0;
while (b[taille] != '\0')
taille++;
Copie de deux chaînes dans une
int i, j;
char *prenom = "Mouloud ";
char *nom = "Dupont";
char nomComplet[15];
int taillePrenom = 0;
int tailleNom = 0;
// On calcule la taille de chaque chaîne
while (prenom[taillePrenom] != '\0')
taillePrenom++;
while (nom[tailleNom] != '\0')
tailleNom++;
// On copie les chaînes
for (i = 0; i < taillePrenom; i++)
nomComplet[i] = prenom[i];
// Après cette boucle, `nomComplet` a cette tête :
//
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
// | M | o | u | l | o | u | d | | … | … | … | … | … | … | … |
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
for (j = 0; j < tailleNom; j++, i++) // On incrémente j *et* i.
nomComplet[i] = nom[j];
// `nomComplet` contient maintenant :
//
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
// | M | o | u | l | o | u | d | | D | u | p | o | n | t | … |
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
nomComplet[i] = '\0';
// `nomComplet` contient maintenant :
//
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+----+
// | M | o | u | l | o | u | d | | D | u | p | o | n | t | \0 |
// +---+---+---+---+---+---+---+---+---+---+---+---+---+---+----+