uIP int in char casten und dann versenden

Gast #273455
Lesenswert?
• ▲
▼
Hallo,

ich möchte gerne einen int-Wert in einen char casten und diesen dann
mittels uip_send versenden.

Einen char kann ich ohne Probleme wie folgt versenden:

char mess [20] ="zei";
uip_send(mess, 20);

oder:
char mess [20] = {'w','o','r','t'}
uip_send(mess, 20);

oder:
char mess [20];
mess[0] = 'z';
mess[1] = 'e';
uip_send(mess, 20);


Nun möchte ich allerdings einen int-Wert versenden. Mit:
int mess = 2;
uip_send(mess, 20);

geht es nicht.

Ich weiß nicht ob ich den int in einen char casten muss oder ob es auch
ohne casten geht. Nur weiß ich nicht wie ich genau casten muss.
Folgendes hab ich probiert:

int i = 2;
char mess = (char) i;
uip_send(mess, 20);

Der Compiler schmeißt mir hierbei keinen Fehler, allerdings kommt am
Ende nicht die 2 heraus, sondern irgendwelche Sonderzeichen.

Ich würde mich freuen wenn mir jemand helfen kann.

Birger
#273456
Lesenswert?
• ▲
▼
Du willst nicht casten, du willst eine Zahl in einen String umwandeln.
Mal dir bitte mal die Binärdarstellung des Strings "123" und die der
Zahl 123 auf. Dann siehst du, was ich meine.

Du glaubst mir hoffentlich, wenn ich behaupte, dass du nicht der erste
mit diesem Problem bist? Es gibt einige Standardlösungen, die hier
schon sehr oft gepostet wurden, eine ist z.B. sprintf. Falls du C++
programmierst (enden deine Dateien auf .cpp? dann ja) ist sprintf aber
viel zu kompliziert, dann würde man z.B. std::ostringstream nehmen oder
noch viel einfacher: boost::lexical_cast.
Gast #273458
Lesenswert?
• ▲
▼
Genau ich möchte einen int-Wert in einen String umwandeln.
Ich programmiere in C und bin ein Anfänger auf diesem Gebiet.

Aber ich habe das Problem jetzt gelöst, indem ich hier im Forum nach
"string int" gesucht habe. Ich weiß man sollte erst suchen und dann
fragen, nur hatte ich zuvor nach den falschen Suchbegriffen geschaut.

Ich hab es mit dem Beispiel:

int wert = 345;
char string[4];
itoa(wert,string,10);

gelöst.

Aber trotzdem danke für eure Bemühungen!!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren