En C, j'ai deux tableaux de chars :
char array1[18] = "abcdefg";
char array2[18];
Comment copier la valeur de array1
a array2
? Puis-je simplement faire ceci : array2 = array1
?
En C, j'ai deux tableaux de chars :
char array1[18] = "abcdefg";
char array2[18];
Comment copier la valeur de array1
a array2
? Puis-je simplement faire ceci : array2 = array1
?
Vous ne pouvez pas assigner des tableaux pour les copier. La façon dont vous pouvez copier le contenu d'un tableau dans un autre dépend de plusieurs facteurs :
Pour char
si vous savez que le tableau source est à terminaison nulle et que le tableau de destination est suffisamment grand pour contenir la chaîne du tableau source, y compris la terminaison nulle, utilisez la fonction strcpy()
:
#include <string.h>
char array1[18] = "abcdefg";
char array2[18];
...
strcpy(array2, array1);
Si vous ne savez pas si le tableau de destination est assez grand, mais que la source est une chaîne C, et que vous voulez que la destination soit une chaîne C correcte, utilisez snprinf()
:
#include <stdio.h>
char array1[] = "a longer string that might not fit";
char array2[18];
...
snprintf(array2, sizeof array2, "%s", array1);
Si le tableau source n'est pas nécessairement à terminaison nulle, mais que vous savez que les deux tableaux ont la même taille, vous pouvez utiliser la méthode suivante memcpy
:
#include <string.h>
char array1[28] = "a non null terminated string";
char array2[28];
...
memcpy(array2, array1, sizeof array2);
Aucune des méthodes ci-dessus ne fonctionne pour moi ceci fonctionne parfaitement name
voici char *name
qui est transmis par la fonction
char *name
en utilisant strlen(name)
char
tableauname
Le contenu du site temp
en utilisant strcpy(temp, name);
Utilisez-le comme vous voulez, si vous voulez récupérer le contenu original. strcpy(name, temp);
copier le temporaire vers name
et voilà, ça marche parfaitement
const int size = strlen(name);
char temp[size];
cout << size << endl;
strcpy(temp, name);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.