Der Martin: Anfängerfrage zu Strings in C

Beitrag lesen

Hi,

Jedenfalls sehe ich keinen String im Sinne von <string>, sondern nur ein Character-Array.

in C gibt es keinen intrinsischen Datentyp "String". Ein Character-Array wird aber in C als String verwendet.

Außerdem incremntierst Du den Zeiger auf das Character-Array, das ist "verboten".

Durchaus nicht. Es ist gängige Praxis, mit einem Zeiger "durch ein char-Array zu laufen".

Um aauf ein Folgeelement zuzugreifen, kannst Du einen Zähler i incrementieren und diesem dem Zeiger auf die Zeichenfolge hinzuaddieren:

Kann man machen - aber warum so umständlich. ;-)

Also z.B
     *(line + counter)

... was gleichbedeutend ist mit
       line[counter]
nur dass die Indexschreibweise für die meisten leichter zu verstehen ist.

Aber line solltest Du nicht verändernd anfassen.

Das ist, wie gesagt, völlig unproblematisch, solange es eh nur eine lokale Kopie ist - und ja, auch Funktionsargumente sind lokale Variablen.

char **     // das verstehe ich nicht? Wozu steht das da?
              // Soll das der Typ (Rückgabewert) der Funktion sein?

Syntaktisch gesehen ja. Darüber habe ich mich auch gewundert. Also möchte frankx eigentlich einen Zeiger auf Zeiger auf char zurückgeben - im Prinzip ein Array aus Strings.
Das passt aber nicht so ganz mit der Arbeitsweise der Funktion zusammen, außerdem hat er ohnehin versäumt, ein Ergegbnis zurückzuliefern.

Ciao,
 Martin

--
Wenn man keine Ahnung hat - einfach mal Fresse halten.
  (Dieter Nuhr, deutscher Kabarettist)