Hallo Alle,
ich bin Anfänger und habe in der Suche auch nichts passendes gefunden.
Ich möchte die durch Kommas getrennten Werte eines Strings char
STRING=1,2,3,4,5
in ein Array speichern int ARRAY[6]={1,2,3,4,5}
Ich habe schon einiges mit den Stringfunktionen getestet komme aber
nicht recht voran, könnt ihr mir bitte helfen?
Bei den Stringfunktionen tauchte weder strtok (bzw. strtok_r) noch strtol (bzw. atoi) auf ? scnr, Jörg
Ja danke, habe es nun mit strtok realisiert.
> habe es nun mit strtok realisiert.
<Glaskugel-Modus>
Dann verbockst du da was!
</Glaskugel-Modus>
Also die Antworten sind ja echt hilfreich!
char * tok = strtok(pos, ",");
i = 0;
int Achsenarray_okay = 0;
for (i=0;i<=11;i++)
{
Achsenarray[i] = atoi(tok);
tok = strtok(NULL,",");
itoa(Achsenarray[i], string_temp, 10);
}
Ist es nicht einfacher, den String nach "," zu durchsuchen und jedesmal das Komma durch ein 0 zu ersetzen und den Anfang als char* in einem Array zu speichern. Jeder Eintrag im Char-Array ist ein Pointer auf den Teilstring.
Eine möglichkeit währe
#include <stdio.h>
struct split
{
char *pointers[256];
int count;
};
struct split split (char *in, char delim)
{
struct split sp;
sp.count = 1;
sp.pointers[0] = in;
while (*++in)
{
if (*in == delim)
{
*in = 0;
sp.pointers[sp.count++] = in+1;
}
}
return sp;
}
Gruß
GundelGaukeley
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.