PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit String Verarbeitung



05-10-2000, 16:54
Ich weiß irgenwie nicht wie ich weiter kommen soll.

Ich möchte eigentlich nur aus einer Zeichenkette etwas herauskopieren.

Also ich habe z.B die Zeichenkette "abcdefghij" die in dem char-Feld hilf steht.
Jetzt will ich in dem Feld hilf2 "efghij" reinkopieren. Da ich keine Funktion gefunden habe, hab ich mir eine Schleife geschrieben:
for(lauf=4;lauf<strlen(hilf);lauf++)
hilf2[lauf-4]=hilf[lauf];

funtioniert auch. Aber jetzt muss noch das letzt Zeichen "j" weg. Also:
hilf2[strlen(hilf2)]=0;
leider läuft das nicht richtig.

wenn so geht es:
printf("\n");
hilf2[strlen(hilf2)]=0;

wenn ich aber dann hilf2 ausgebe, kommt immer was falschens raus.

Wenn jemand von euch eine Lösung kennt, soll er bescheid sagen.
Mein Problem ist nur das ich eine Zeichenkette habe, aus der ein Stück rauskopiert werden wuss. Die Zeichenkette ist unterschiedlich lang, aber der zukopierende String fängt immer an der Stelle 4 an und hört beim vorletzten auf.

05-10-2000, 19:17
wenn du mit z.B. strcpy Zeichenketten kopierst, z.B. die Kette zeile, dann wird immer am ersten Element angefangen: &zeile[0] (zeile entspricht &zeile[0]).
Wenn du nun aber vom 4. Element von zeile ab kopieren möchtest, geht das so: ab &zeile[3]
also ab 4. Element von zeile -> zeile2:
strcpy(zeile2, &zeile[3]); //sowohl zeile2 also auch &zeile[3] sind Adressen von Zeigern!
strcpy(&zeile2[0], &zeile[3]); // macht folglich das gleiche!!

Wenn du jetzt nur n Zeichen kopieren willst, nimmst du am besten strncpy:
strncpy(zeile2, zeile[3], n);

Für weitere "Spielerein" mit Zeigern kann ich nur einschlägige Bücher zu C empfehlen! (Aber nicht das "Original" von Kerningham-Richie!!!)

Sion

05-10-2000, 20:55
Danke.
Ich hab auch schon ein Buch und zwar "C Programmierung" von Andrè Willms.
Das Buch ist echt super, aber leider bin ich erst auf den ersten paar Seiten.