While-Schleife :-)
-
Hi,
ich habe eine While-Schleifewhile ((Pt = Finde_Feld('a')) != NULL) { printf ("Das Feld beinhaltet: %s\n",Pt); }
das Ergebnis sieht so aus:
Das Feld beinhaltet: svw
Das Feld beinhaltet: bvw
Das Feld beinhaltet: zDie Frage ist:
Ich will jeden Inhalt von den drei Feldern bearbeiten. wie kann ich dann jedes Feld bei mir speichern und modifizieren wie ich möchte.
Danke schön im Voraus.
-
Ich will jeden Inhalt von den drei Feldern bearbeiten. wie kann ich dann jedes Feld bei mir speichern und modifizieren wie ich möchte.
Hääääh? Drück dich mal deutlicher aus! Ich hab nämlich keine Ahnung was du willst...
-
Vor allem: Wie ist "Pt" deklariert? Was macht Finde_Feld()?
-
"Pt" ist ein Char-Zeiger (char *Pt)
Die Fkt. Find_Feld('a') sucht in einer verketeten Liste nach den Felder mit dem Index 'a' und gibt sie aus.
Die While Schleife gibt 3 Inhalte von drei Feldern aus, ok?
Ich muß zuerst die zwei letzten Felder (mit den Inhalten "bvw" und "z") untersuchen und dann darauf basierend Veränderungen im ersten Feld (mit dem Inhalt "svw") unternehmen.
Deswegen brauche ich jedes Feld in einem Array (z.B. in char Array_1[] will ich "svw" speichern, in char Array_2[] will ich "bvw" speichern und in char Array_3[] will ich "svw" speichern ) zu speichern damit ich sie bearbeiten kann.Ich hoffe dass ich mich deutlich ausgedruckt habe.
-
Gibt die Schleife immer drei Werte zurück? Und mußt du immer auf das erste zurückgegebene Feld schreiben?
char* first=Finde_Feld('a'); char* next; while((next=Finde_Feld('a')!=NULL) { strcat(first,next);//Beispiel für Verarbeitung }
(Das Beispiel verkettet alle gefundenen Datensätze im ersten gefundenen Feld - wobei ich davon ausgehe, daß dort genug Platz verfügbar ist)
-
Die While-Schleife gibt immer 3 Wete zurück.
Die Ausgabe sieht so aus mit strcat():
content nach strcat() hat: svw
content nach strcat() hat: svwbvw
content nach strcat() hat: svwbvwz
-
Und? Gefällt dir das nicht? Dann setz' anstelle des strcat etwas anderes ein
Aber wenn du immer genau drei Werte bekommst (was ist denn das für eine Datenstruktur?), kannst du auch jeden in eine Variable packen und dann damit rechnen:
char* v1=Finde_Feld('a'),v2=Finde_Feld('a'),v3=Finde_Feld('a'); for(int x=0;x<strlen(v1);++x)v1[x]+=v2[x]+v3[x]; //das wäre ein Beispiel für eine Byteweise Überlagerung der drei Eingabefelder