Je suis en train d'apprendre les chaînes de caractères en c. J'utilise code::blocks comme compilateur, même si ce n'est pas seulement pour le c. Donc, le problème avec le code ci-dessous est que la sortie pour string2 est les 5 caractères stockés plus la sortie de string1. Je vais vous montrer :
#include <stdio.h>
#include <string.h> /* make strncpy() available */
int main()
{
char string1[]= "To be or not to be?";
char string2[6];
/* copy first 5 characters in string1 to string2 */
strncpy (string2, string1, 5);
printf("1st string: %s\n", string1);
printf("2nd string: %s\n", string2);
return 0;
}
La sortie est :
1st string contains: To be or not to be?
2nd string contains: To be To be or not to be?
Si vous voulez mon avis, c'est beaucoup plus que 5 caractères...