Je vois à peut près ce que vous voulez me faire comprendre et pourtant pour moi les deux chaînes font bien 8 «*char*» ou «*octets*»:Citation:
Envoyé par Emmanuel Delahaye
strx[0], strx[1], strx[2], strx[3], strx[4], strx[5], strx[6], strx[7].
D'ailleurs, j'obtiens bien la même longueur pour les deux tableaux:
Sortie:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 /* Exemple4 */ # include <stdio.h> int main (void) { char str1[] = "Exemple", str2[7]=""; printf("Avant copie de str1 dans str2:\n"); printf("str1 contient: %s\n", str1); printf("str2 contient: %s\n", str2); printf("Longueur de \"str1[]\": %d octets.\n", strlen(str1)); printf("longueur de \"str2[]\": %d octets.\n", strlen(str2)); strcpy (str2, str1); printf("Apres copie de str1 dans str2:\n"); printf("str1 contient: %s\n", str1); printf("str2 contient: %s\n", str2); printf("Longueur de \"str1[]\": %d octets.\n", strlen(str1)); printf("longueur de \"str2[]\": %d octets.\n", strlen(str2)); return 0; }
Avant copie de str1 dans str2:
str1 contient: Exemple
str2 contient:
Longueur de "str1[]": 7 octets.
longueur de "str2[]": 0 octets.
Apres copie de str1 dans str2:
str1 contient: Exemple
str2 contient: Exemple
Longueur de "str1[]": 7 octets.
longueur de "str2[]": 7 octets.
Que n'ais-je toujours pas compris? :-(