Char from int in C

hallo,

wahrscheinlich kann mir jemand schnell helfen,
ich hab:

FILE = *fp;
char filename[10];
int id=200;

strcpy(filename, „test“);

und wuerde gerne die integer variable id an die char variable filename ranhaengen, so dass

fp = fopen(filename, „w“);

gleichbedeutend ist mit

fp = fopen(„test200“, „w“); .

wie geht das ?

vielen dank
arne

Schau Dir mal die

itoa()

Funktion an.

Gruß
Chris

Hi Arne!

Wenn Du statt char[] einen char* verwendest, dann kannst Du das mit sprintf() machen.

Gruß,
TheBeast

Hallo TheBeast,

Wenn Du statt char[] einen char* verwendest, dann kannst Du
das mit sprintf() machen.

Ist doch gar nicht nötig:

char txt[10];
char *ptr;

ptr = txt;
// oder
ptr = &txt[0];
// funktioniert beides bestens in C :wink:

MfG Peter(TOO)

hallo arne,

wahrscheinlich kann mir jemand schnell helfen,
ich hab:

FILE = *fp;
char filename[10];
int id=200;

sprintf(filename, „%s%i“, „test“, id);

fp = fopen(filename, „w“);

MfG Peter(TOO)

Hi Peter!

Das ist zwar prinzipiell richtig - nötig ist es nicht -, birgt aber (gerade im Zusammenhang mit sprintf’s usw.) die Gefahr eines Buffer-Overflow, wenn man die anzuhängende id noch programmatisch begrenzen will (ok, bei INT_MAX isses ja sowieso aus, aber man kann da ja egal wasfüreinen String zusammenbasteln).

Bei char[10] und sprintf(my_string, „TEST%d“, my_id) dürfte my_id eben maximal 6-stellig sein, wenn ich einen char* verwende, dann allokiere ich mir eben dynamisch genau so viel Platz wie ich brauche. Das wird dann ganz besonders bei mehrteiligen sprintf’s interessant.

Gruß,
TheBeast

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]