PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : int to char[]



Gsus
08-12-2006, 16:01
Hallo

ich versuche die einzelnen Zifferen (nicht Zahlen!) einer int variablen in einen char array speichern. Beispiel



void main()
{
int i = 121;
int j;
char str[20];

int2str(i,str);
for (j = 0; j < sizeof(str);j++)
{
printf("%d. Ziffer = %c",j,str[j]);
}
}

int2str ( int a, char *s)
{
int i = 19;
char str[20];

do{
str[--i] = (char) a%10 +'0';
a = a/10;
}while (a >= 1)

for(;i < 19;i++)
{
*s++ = str[i++];
}
}

so den code habe ich gefunden und auch verstanden der sollte ja eigentlich auch funktionieren aber leider kommt dann raus
1
1
(zeichen die meine tastatur nicht hat)

mmmh wenn jemand eine bessere Idee hat oder die Lösung für das Problem hier kennt wäre ich für jeden Tipp dankbar.

mfg

gsus

gonso
09-12-2006, 15:22
Wie wäre es damit ?

#include <stdio.h>
#define MAX 10
void int2str ( int a, char *s)
{
snprintf( s,MAX, "%d", a );
}

int main()
{
int i = 1234567891;
int j;
char str[MAX]={0};
int2str(i,str);
for (j = 0; j < sizeof(str) && str[j]!=0;j++)
{
printf("%d. Ziffer = %c\n",j,str[j]);
}
return 0;
}

Thomas Engelke
11-12-2006, 10:03
Oder damit:



char *mychar=calloc(1, 1024);
int myint=7654321;
int i=0;

sprintf(mychar,"%d",myint);

for(i=0;i<strlen(mychar);i++) {
printf("%c\n",mychar[i]);
};

free(mychar);


TME

Gsus
11-12-2006, 19:55
hallo

danke für die antworten ich habe den ersten vorschlag gewählt und das war dann ganz gut ^_^ danke schön hat mir sehr viel stress erspart

mfg

gsus :D