Si elle est une chaîne littérale, vous pouvez faire l'une de ces:
char *string = "abcd";
char astring[] = "abcd";
Si vous voulez savoir ceci pour éventuellement copier des chaînes, vous pouvez avoir un tampon, ou allouer de la mémoire, et l'espace pour '\ 0' est nécessaire, même si strlen("abcd")
retournera 4 parce qu'il ne compte pas le terminateur.
/* buffer way */
char string[5];
strcpy(string, "abcd");
/* allocating memory */
// char *ptr = malloc(5*sizeof(*ptr)); // question was retagged C++
char *ptr = static_cast<char*>(malloc(5*sizeof(*ptr));
strcpy(ptr,"abcd");
/* more stuff */
free(ptr);
Puisque la question a été retagged à C++, vous pouvez également utiliser new
et delete
. Vous pouvez également utiliser std::string
.
'new' n'est pas un mot-clé' C'. Peut-être que vous vouliez marquer cette question comme 'C++'? – pmg
vous avez raison, je vais changer le titre – okami
Utilisez 'std :: string'. Ne le faites pas à la main. – GManNickG