Strcpy ou =

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 20 sept. 2007 à 14:20
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 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

 

2 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Derniè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(...).

Shell
3
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
20 sept. 2007 à 16:41
oki merci bien !!!

 
0
Rejoignez-nous