Download Le langage C

Transcript
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
abcdefghijkl
abcdefghijklm
abcdefghijklmn
abcdefghijklmno
abcdefghijklmnop
abcdefghijklmnopq
abcdefghijklmnopqr
abcdefghijklmnopqrs
abcdefghijklmnopqrst
abcdefghijklmnopqrstu
abcdefghijklmnopqrstuv
abcdefghijklmnopqrstuvw
abcdefghijklmnopqrstuvwx
abcdefghijklmnopqrstuvwxy
abcdefghijklmnopqrstuvwxyz
Analyse
Vous vous interrogez peut-être au sujet de l’instruction qui figure sur la ligne 15 :
strcpy(str1, "");. Elle recopie une chaîne vide, c’est-à-dire ne contenant que le seul
terminateur (\0). Il en résulte que le premier caractère de str1, str1[0], est NULL. On
aurait pu faire la même chose en écrivant : str1[0] = 0; ou str1[0] = ’\0’;.
Nous vous rappelons par ailleurs que si vous connaissez la longueur des deux chaînes de
caractères, il est plus efficace d’utiliser memcpy(). Les trois lignes suivantes effectuent la
même chose :
strcat(str1, str2);
strncat(str1, str2, n2);
memcpy(str1+n1, str2, n2+1);
n1 et n2 sont les longueurs des chaînes de caractères telles que renvoyées par la fonction
strlen() (et non pas la taille de l’espace mémoire qui inclut lui le caractère nul de fin de
chaîne).