Strcat [Résolu]

Signaler
Messages postés
152
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
2 juin 2008
-
Messages postés
152
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
2 juin 2008
-
char szBuff[256];
char cBuff = 'A';

strset(szBuff,'\0');
strcat(szBuff,&cBuff);

C'est normal que ca plante a l'appel de strcat ? Si oui pourquoi ?

Merci a l'avance.

________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !

4 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Si tu fais ca, le deuxième appel à strlen n'est plus bon (tu écrases le 0)
int length = strlen(szBuff);
szBuff[length] = cBuff;
szBuff[length+1] = '\0';

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

En C une chaine de caractere c'est un tableau de char terminé par le caractere nul '\0'.

cBuff n'est pas une chaine, hors le deuxieme param de strcat doit en etre une, donc ca plante.
Messages postés
152
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
2 juin 2008
1
et donc pour ajouter un caractère a ma chaine le meilleur moyen serait-il :

szBuff[strlen(szBuff)] = cBuff;
szBuff[strlen(szBuff)+1] = '\0';

??

________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !
Messages postés
152
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
2 juin 2008
1
Merci ! J'y avais pas pensé :P

________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !