LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
20 sept. 2007 à 14:20
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
20 sept. 2007 à 16:41
Bonjour,
Voila je me posais une question généralement pour des chaines de caracteres j'ai l'habitude d'utiliser des fonctions type strcat, strcpy etc..
mais j'ai deja vu un truc du style
char text[10] = "coucou";
ceci est possible? aucun risque de plantage? pas besoin de faire strcpy?car c'est un tableau de caractere en fait c'est ca?
Voila juste pour ma culture perso et informatique!
Merci
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 20 sept. 2007 à 16:24
Quote : char text[10] = "coucou";
Il ne faut pas mélanger initialisation de variable et affectation d'une valeur à une variable.
Dans ton exemple tu déclares un tableau de dix charactères (donc un chaine de taille 10).
Puis tu l'initialises à "coucou".
Jusque la rien d'exceptionelle.
Par contre si tu fais le code qui suit, ca va planter, ton compilo va te jeter :
char text[10];
text[0] = "coucou"; // Le compilo s'attend à trouver un charactère ici
Tu dois donc faire :
text[0] = 'c';
text[1] = 'o';
text[2] = 'u';
text[3] = 'c';
text[4] = 'o';
text[5] = 'u';
text[0] = 0; // Charatère nul pour terminer la chaine
Ou bien utiliser strcpy :
strcpy(text, "coucou");
Pour faire de la copy de chaine passe par donc par strcpy(...).