PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : int Array in einen String wandeln



Hotte Meyer
26.12.2008, 13:27
Hallo Leute,

ich steh im Moment auf der Leitung und habe folgendes Problem: Ich habe ein integer array mit 32 Werten und möchte dieses jetzt in ein einzigen char (string) umwandeln und zwischen jeder Zahl soll ein Punkt eingefügt werden. Das soll folgender Maßen aussehen:

int array[32] = {122 3 4567 ....}

und mein string soll dann so aussehen:

char string[] = {"122.3.4567. "}

Hat vielleicht jemand eine Lösung wie man das programmieren kann?
Bedanke mich schon mal im vorraus für evtl. Antworten.

MfG
Hotte

PicNick
26.12.2008, 17:01
Du kannst die Integers einzeln in strings umwandeln, und diese strings mit

strcat( dest , src )

zusammenhängen

Hotte Meyer
26.12.2008, 17:47
Danke Robert,

hab nur noch das Problem, dass ich die Integer-Werte nicht nach char konvertieren kann. Der Befehl den ich aus C kenne:" char* itoa ( int zahl, char* string, int radix ); " unterstützt mein Mikrocontroller Compiler nicht und ich weiß auch im Moment nicht wie man es von Hand programmiert. Gibt es denn noch einen andere Befehle ?

MfG
Hotte

vohopri
26.12.2008, 19:40
Hallo Hotte,

wenn deine Programmiersprache keinen Befehl dazu hat, dann ist es immer noch einfach, das selbst zu programmieren:

Die Integerzahl zerlegst du in Ziffern. Für jede Ziffer nimmst du den Codewert der Ziffer "0" und addierst denn Integerwert der zu verarbeitenden Ziffer. Das ergibt den Charactercode der Ziffer und diese fädelst du einfach zu einem String auf. Das geht in jeder Programmiersprache. In manchen Sprachen muss man allerdings die Typumwandlungen explizit angeben, damit der Compiler keinen Fehler argwöhnt (Pascal u.ä.). In anderen Sprachen kann man das recht direkt hinschreiben, weil der Compiler Vertrauen hat (C u.ä.).

Grüsse,
Vohopri

chientech
27.12.2008, 18:12
@Hotte

Was benutzt du für einen Compiller?
Hast du auch die richtigen includes?

wkrug
28.12.2008, 10:41
char* itoa ( int zahl, char* string, int radix ); " unterstützt mein Mikrocontroller Compiler nicht und ich weiß auch im Moment nicht wie man es von Hand programmiert.
Das kann ich fast nicht glauben.
Guck mal in die Hilfe deines Compilers und gib als Suchbegriff itoa ein.
Da sollte dann auch drinstehen in welcher lib das Kommando enthalten ist.

Hotte Meyer
28.12.2008, 12:45
Also ich benutze als Compiler eine Version von Keil. Den Befehl strcat( dest , src ) hab ich in der Hilfe gefunden. Nur den anderen Befehl nicht.

MfG
Hotte