[quote=989178,0,4,6488]Pourquoi ça na pas de sens ?[/quote]
Dans le mot 'concaténer', il y a 'con' du latin 'cum' qui veux dire 'avec' et 'catener' du latin 'catena' qui veux dire 'chaine' (dans le contexte, 'chaine de caractères'). Donc, il s'agit de mettre ensemble, d'abouter, des chaines de caractères. Rien à voir avec des valeurs numériques. Maintenant, si tu veux transformer des valeurs numériques en chaines, et les concatener, tu peux utiliser la méthode de moi23372, ou une variante plus simple comme :
unsigned a = 1234;
unsigned b = 5678;
char s[100];
sprintf (s, "%u%u", a, b);
|
et reconvertir le résultat en unsigned long
unsigned long c = strtoul(s, NULL, 10);
|
mais rien ne dit que le nombre exprimé dans la chaine tiennne dans un unsigned long.
On peut aussi utiliser la méthode mathématique qui consiste à multiplier l'un des nombres par 10^4 (10000), s'agissant de nombres exprimés à base 10.
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
unsigned a = 1234;
unsigned b = 5678;
char s[100];
sprintf (s, "%u%u", a, b);
{
unsigned long c = strtoul (s, NULL, 10);
printf ("%lu\n", c);
}
{
unsigned long c = (a * 10000) + b;
printf ("%lu\n", c);
}
system ("pause" );
return 0;
}
|
encore faudrait-il avoir une spécification claire de ce que tu veux faire...
---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/