Strcat

Résolu
gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 - 23 juin 2006 à 20:12
gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 - 23 juin 2006 à 20:41
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

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 juin 2006 à 20:35
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
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
23 juin 2006 à 20:19
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.
0
gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 1
23 juin 2006 à 20:31
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 !
0
gbourgeois0019 Messages postés 152 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 2 juin 2008 1
23 juin 2006 à 20:41
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 !
0
Rejoignez-nous