String (CSV) zerlegen und in Array speichern mit AVR GCC

Gast #1383428
Lesenswert?
• ▲
▼
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?
Gast #1389189
Lesenswert?
• ▲
▼
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);
}
Gast #1389215
Lesenswert?
• ▲
▼
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.
Gast #1389444
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.