Ya pas mieux qu'une suite de strcat ?

Ya pas mieux qu'une suite de strcat ? - C - Programmation

Marsh Posté le 30-12-2003 à 18:24:51    

Salut,
en C,
 
soit une fonction toto avec comme prototype :
 

Code :
  1. int toto(char *par1, char *par2)


Le but, tout simple en passant, est de créer une chaine qui contient une balise XML, par exemple :
 

Code :
  1. <balise p1="bonjour" p2="aurevoir"/>


 
Donc dans la fonction il suffit de faire un truc dans le genre :
 

Code :
  1. strcpy(message,"<balise p1=\"" );
  2.   strcat(message,par1);
  3.   strcat(message,"\" p2=\"" );
  4.   strcat(message,par2); 
  5.   strcat(message,"\"/>" );


 
Bon c'est bien mais j'utilise aussi cette technique dans d'autres fonctions, qui peuvent par exemple engendrer 10 strcat à la suite. Et 10 appels à strcat, je trouve çà moche.
 
Ya pas moyen de faire d'une autre manière plus... jolie ?
 
Merci !


Message édité par cypress le 30-12-2003 à 18:25:40

---------------
Savoir c'est vivre, et maintenir dans l'ignorance c'est presque un homicide
Reply

Marsh Posté le 30-12-2003 à 18:24:51   

Reply

Marsh Posté le 30-12-2003 à 18:31:03    

Je vais peut être dire une connerie mais une fonction avec un nombre non défini de paramètres peut faire une boucle contenant un strcat.
 
pour le nombre non defini de paramètres cf les sources de printf & man stdarg je crois (pas sur du tout j'ai mal de tête)
 
Bon courage

Reply

Marsh Posté le 30-12-2003 à 18:41:26    

sprintf(var," <balise p1=\"%s\" p2=\"%s\"/>",arg1,arg2);

Reply

Marsh Posté le 30-12-2003 à 18:41:30    

C'est intéressant, mais mes fonctions ont un nombre fini d'arguments, parce que mes fonctions sont appelées par des programmes non-C qui ne gère pas ce type d'appel.
Merci.


---------------
Savoir c'est vivre, et maintenir dans l'ignorance c'est presque un homicide
Reply

Marsh Posté le 30-12-2003 à 18:46:50    

Rah la la mais oui c'est vrai chui trop con moi.
Le pire c'est que je l'utilise dans un autre contexte.
Parfois on a tellement la tete dans le guidon qu'on voit pas les chose évidentes.
 
Merci !!


---------------
Savoir c'est vivre, et maintenir dans l'ignorance c'est presque un homicide
Reply

Sujets relatifs:

Leave a Replay

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