frankx: Anfängerfrage zu Strings in C

Beitrag lesen

Hellihello,

*line ist ein string "norton,porton,blasiblub\n":

folgende funktion wird damit aufgerufen

  
char **  
csvlinesplitting(char *line)  
{  
        int counter;  
        counter = 0;  
        char elements[120];  
  
       printf("Elements am Anfang: %s\n\n", elements);  
        while(*line != '\n') {  
                if (*line != ',') {  
                        elements[counter] = *line;  
                        printf ("xxx linechar: %c yyy elements: %s\n", *line,elements);  
                        counter++;  
                }  
                else {  
                        printf("\n\nes ist ein komma da: %c - elementsinhalt ist : %s\n", *line, elements);  
                        printf("lineinhalt ist : %s\n", line);  
                        counter=0;  
                }  
                line++;  
  
        }  
}  

Ausgabe:

++++++++++++++++

Elements am AnfangÐÓÿ¿

xxx linechar: n yyy elements: ÐÓÿ¿
xxx linechar: o yyy elements: ÐÓÿ¿
xxx linechar: r yyy elements: nÐÓÿ¿
xxx linechar: t yyy elements: norÐÓÿ¿
xxx linechar: o yyy elements: nortoÐÓÿ¿
xxx linechar: n yyy elements: nortoÐÓÿ¿

++++++++++++++++++++

etc. pp.;

Diese "ÐÓÿ¿" kommt daher, dass das Charakter-Array "elements" im Speicher irgendwo angesiedelt wird und so die Inhalte dort übernimmt?

Wie kriege ich das "weg" bzw. wie mache ich das richtig?

Ich will den String "lineinhalt" bis zum nächsten Komma durchgehen und in der variablen (Char-Array) "elements" speichern, ohne "ÐÓÿ¿" da stehen zu haben (;-).

In PHP hätte ich dann wohl gemacht:

elemenst[0] += lineinhalt[n...]; und nach jedem komma dann
elements[1] += lineinhalt[n...]

Konnte ich mich verständlich machen? Es geht hier eher um ein Grundverständnis, keine "Anwendung" im Blick.

Dank und Gruß,

frankx

--
tryin to multitain  - Globus = Planet != Welt