#define dans une chaine de caracteres [C] - C - Programmation
Marsh Posté le 04-08-2007 à 14:02:42
Code :
|
Edit: Arf, et sinon c'est impossible sans les guillemets dans le define. Sérieux, pourquoi un tel délire ?
Marsh Posté le 04-08-2007 à 19:28:48
non mais c'est bon tpierron ta méthode me convient très bien, je savais pas que le C permettait ce genre de syntaxe pour concatener des chaines !
Marsh Posté le 04-08-2007 à 19:32:49
J'avais posté un truc mais en fait c'est un poil plus compliqué. Voilà la bonne solution :
Il faut utiliser "#" pour transformer la macro en chaine de caractères. Il faut aussi deux niveaux de macros pour expanser la macro avant de la stringifier :
Code :
|
Marsh Posté le 04-08-2007 à 19:35:04
je comprends pas ca:
#define xstr(s) str(s)
#define str(s) #s
que signifie ce #s ?
Marsh Posté le 04-08-2007 à 19:35:42
cimourdain, la méthode de tpierron demande que la macro soit entre double quotes, ce que, d'après ce que tu as écrit, tu ne peux pas te permettre.
Marsh Posté le 04-08-2007 à 19:43:21
matafan a écrit : cimourdain, la méthode de tpierron demande que la macro soit entre double quotes, ce que, d'après ce que tu as écrit, tu ne peux pas te permettre. |
ben en fait, dans ces conditions, si !
Marsh Posté le 04-08-2007 à 13:58:44
Salut,
ne fonctionne pas puisque qu'affiche: ceci est une CHAINE et non ceci est une super chaine de caracteres !
Comment résoudre ce probleme sachant que je veux asbosument utiliser des #define et qu'ils ne contiennt pas de ", donc pas de #define CHAINE "super chaine de caracteres !"
Je pensais construire le chaine a coup de strcpy et strcat mais y'a pas plutot un moyen "syntaxique" du language ? ca serait plus simple.
Message édité par cimourdain le 04-08-2007 à 13:59:22