Concatenation de chaines de caracteres

Concatenation de chaines de caracteres - C++ - Programmation

Marsh Posté le 26-11-2002 à 15:02:51    

commnent regrouper deux chaines de caractere en C
un est saisie par l'utilisateur et est dc ds un tampon et l'autre est du type ../images/
voila si vous pouviez m'aider se serait cool
 
merci

Reply

Marsh Posté le 26-11-2002 à 15:02:51   

Reply

Marsh Posté le 26-11-2002 à 15:09:07    

Reply

Marsh Posté le 26-11-2002 à 15:16:43    

je dois faire comme ca?
 
 
scanf("%s",nom_entree_Ior);  
strcat("../images/original_images/" , nom_entree_Ior );  
 
et apres pour que ce soit mis ds une vriable de type char??

Reply

Marsh Posté le 26-11-2002 à 15:17:44    

Ne pas oublier de prévoir assez de place dans la chaîne destinatrice pour contenir le tout :).
 
char ChaineDestin[256]; // 255 caract et le zéro terminal
 
strcpy(ChaineDestin, "../images/original_images/" );
strcat(ChaineDestin, nom_entree_Ior);
 
ou sprintf(ChaineDestin, "%s%s", "../images/original_images/" , nom_entree_Ior);
 
voire  
 
sprintf(ChaineDestin, "../images/original_images/%s", nom_entree_Ior);
si le ../  / est invariable (???).
 


Message édité par Carbon_14 le 26-11-2002 à 15:21:30
Reply

Marsh Posté le 26-11-2002 à 15:19:59    

tertulia a écrit a écrit :

je dois faire comme ca?
 
 
scanf("%s",nom_entree_Ior);  
strcat("../images/original_images/" , nom_entree_Ior );  
 
et apres pour que ce soit mis ds une vriable de type char??




mieux:
chaine_destination doit etre alloue a une taille suffisante biensur!
 

Code :
  1. strcpy(chaine_destination,strncat("../images/original_images/",nom_entree_Ior,strlen(nom_entree_Ior)+strlen("../images/original_images/" ));


Message édité par nicolasm le 26-11-2002 à 15:21:36
Reply

Marsh Posté le 26-11-2002 à 15:20:37    

je veux bien mais ca marche pas!!
si qqu peux me l'ecrire correctement ce serait cool parce que là je me galere a entree tout le path a chaque fois et c'est lourd.. :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:

Reply

Marsh Posté le 26-11-2002 à 15:22:25    

nicolasm a écrit a écrit :

 

Code :
  1. strcpy(chaine_destination,strncat("../images/original_images/",nom_entree_Ior,strlen(nom_entree_Ior)+strlen("../images/original_images/" ));


 




 
c'est quoi ce truc [:wam]
ça va planter, tu ajoute une chaîne à la fin d'une constante :ouch:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 15:22:30    

tertulia a écrit a écrit :

je veux bien mais ca marche pas!!
si qqu peux me l'ecrire correctement ce serait cool parce que là je me galere a entree tout le path a chaque fois et c'est lourd.. :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  




 
essai de mettre \ au lieu de / ca ira mieux car ca doit etre ton compilo qui aime pas ou alors mets //


Message édité par nicolasm le 26-11-2002 à 15:22:55
Reply

Marsh Posté le 26-11-2002 à 15:23:48    

nicolasm a écrit a écrit :

 
 
essai de mettre \ au lieu de / ca ira mieux car ca doit etre ton compilo qui aime pas ou alors mets //
 




 
c'est le contraire, c'est le \ qui doit être doublé, pas le /


Message édité par antp le 26-11-2002 à 15:23:58

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 15:24:23    

antp a écrit a écrit :

 
 
c'est quoi ce truc [:wam]
ça va planter, tu ajoute une chaîne à la fin d'une constante :ouch:
 




non strNcat renvoi une variable contenant la concaténation des deux variables ou constantes en paramètres.
je l utilise des centaines de fois dans mon prog

Reply

Marsh Posté le 26-11-2002 à 15:24:23   

Reply

Marsh Posté le 26-11-2002 à 15:25:16    

antp a écrit a écrit :

 
 
c'est le contraire, c'est le \ qui doit être doublé, pas le /




oups sui allé un peu vite

Reply

Marsh Posté le 26-11-2002 à 15:26:17    

nicolasm a écrit a écrit :

 
non strNcat renvoi une variable contenant la concaténation des deux variables ou constantes en paramètres.
je l utilise des centaines de fois dans mon prog




 
t'emploies quel compilo pour avoir ce comportement particulier ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 15:26:47    

nicolasm a écrit a écrit :

 
mieux:
chaine_destination doit etre alloue a une taille suffisante biensur!
 

Code :
  1. strcpy(chaine_destination,strncat("../images/original_images/",nom_entree_Ior,strlen(nom_entree_Ior)+strlen("../images/original_images/" ));






 
...super, tu réussi à rendre incompréhensible un truc tout bête !

Reply

Marsh Posté le 26-11-2002 à 15:27:06    

antp a écrit a écrit :

 
 
t'emploies quel compilo pour avoir ce comportement particulier ?




Dev-C++
mais si ca se passe pas comme ca sous tout les compilos alors que strncat est censé être std ca va me posé un problème va falloir que j inverse certain const avec mes variables c chiant!
 
Pourtant j ai pas d erreur louche!!!!hyper louche!!!


Message édité par nicolasm le 26-11-2002 à 15:33:53
Reply

Marsh Posté le 26-11-2002 à 15:28:12    

Mais non, c impossible, strncat ajoute à la chaine passée en paramètre un, celle passée en 2. Elle te rend un pointeur vers la chaine passée en 1er paramètre (celle recevant la concaténation) !


Message édité par El_gringo le 26-11-2002 à 15:28:43
Reply

Marsh Posté le 26-11-2002 à 15:28:16    

nicolasm a écrit a écrit :

 
Dev-C++




 
gcc donc...
 
on doit pas avoir la même version du compilo et de la doc :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 15:29:08    

El_Gringo a écrit a écrit :

Elle te rend le 2e paramètre !




 
elle rend le 1er plutôt ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 15:29:26    

L'art du C compact...
Faut penser à nous autres qui ne sommes pas des pros, une variable intermédiaire, ça rend service pour lire plus facilement le code des autres...
 
Ai oublié le "..\\toto\\" si windows.

Reply

Marsh Posté le 26-11-2002 à 15:30:39    

antp a écrit a écrit :

 
 
elle rend le 1er plutôt ;)




 
Salaud, t'as choppé mon erreur avant que j'la corrige !

Reply

Marsh Posté le 26-11-2002 à 15:40:13    

bno ca marche merci prennez vous pasd le tete merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed