Concatenation

Signaler
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003
-
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003
-
B'jour vous

Bon c'est tout bête je voudrais concaténer deux chaine de caractére, alors j'essaye avec :

char *strcat( char *strDestination, const char *strSource );

seulement ce que je veus concatener, sont deux char *, et pas un Const Char* dans le paramettre 2.

Je sais pas qu'elle fonction utiliser, ou qu'elle convertion pour arriver a concaterner char* String1 avec char* String2

Faut dire que j'me penche sur le c++, que lorsque jpeus pas faire autrement en vb, donc pour faire une dll alors soyez indulgeant :))

Merci

Unexpectedspy

,.~*`'^~.(^. :question) .^),.~^'`*~.

6 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
aucune conversion, va tel quel.
BruNews, ciao...
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003

Salut Brunews je t'ombe toujours sur toi :)
mais ça ne fonctionement pas

extrait du prog:

void DumpStreamId(char* strretour )
char* essai;
//je convertis un long en string : char *
//ça marche car essai me renvoie bien la valeur attendue
ltoa (pStreamId->Size.LowPart,essai,16);
//j'essaie de concatener
strcat(strretour,essai);
//et la ma dll explose
}

Encore une petite seconde de reflexion Brunews a m'accorder? :op

merci
,.~*`'^~.(^. :question) .^),.~^'`*~.
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
-------------------------------
Réponse au message :
char *strcat( char *strDestination, const char *strSource );
Ne veut pas dire que tu dois passer en paramètre une chaine constante. C'est juste un respect du moindre privilège.

"et la ma dll explose"
Ton problème vient de essai. Alloue le dynamiquement ou faisant un tableau car il n'a aucun espace réservé pour lui.

Par exemple remplace:
char *essai;
par
char essai[ 10 ];
à condition que le long n'est pas plus de 9 chiffres.
-------------------------------

> Salut Brunews je t'ombe toujours sur toi :)
> mais ça ne fonctionement pas
>
> extrait du prog:
>
> void DumpStreamId(char* strretour )
> char* essai;
> //je convertis un long en string : char *
> //ça marche car essai me renvoie bien la valeur attendue
> ltoa (pStreamId->Size.LowPart,essai,16);
> //j'essaie de concatener
> strcat(strretour,essai);
> //et la ma dll explose
> }
>
>
> Encore une petite seconde de reflexion Brunews a m'accorder? :op
>
> merci
> ,.~*`'^~.(^. :question) .^),.~^'`*~.
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > aucune conversion, va tel quel.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > B'jour vous
> > >
> > > Bon c'est tout bête je voudrais concaténer deux chaine de caractére, alors j'essaye avec :
> > >
> > > char *strcat( char *strDestination, const char *strSource );
> > >
> > > seulement ce que je veus concatener, sont deux char *, et pas un Const Char* dans le paramettre 2.
> > >
> > > Je sais pas qu'elle fonction utiliser, ou qu'elle convertion pour arriver a concaterner char* String1 avec char* String2
> > >
> > > Faut dire que j'me penche sur le c++, que lorsque jpeus pas faire autrement en vb, donc pour faire une dll alors soyez indulgeant :))
> > >
> > > Merci
> > >
> > > Unexpectedspy
> > >
> > > ,.~*`'^~.(^. :question) .^),.~^'`*~.
> >
>
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
deja bien qu'elle explose pas avant.
char* essai; il pointe sur quoi ???
BruNews, ciao...
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Salut, strcat prend comme deuxième paramètre un pointeur constant. La solution pour résoudre ce problème est

soit tu déclare un tableau au lieu d'un char*
char chaine[125];
soit tu convertis ton pointeur en un pointeur constant.
char* chaine1, chaine2;
strcat(chaine1, (const)chaine);

si (const) marche pas fais (const)(char*)
Voilà, comme ceci ça devré bien marché.
Alé bonne prog.
A+.
Bouba
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003

Oui en effet, c'était bien ça le pb merci a toi et trinitacs, j'ai féclaré un tableau et ça marche mieux :)

merci
@+

,.~*`'^~.(^. :question) .^),.~^'`*~.