Aus String filtern und " berücksichtigen
-
Hallo,
ich habe einen String der z.B. so aussehen könnte:abcedfglalala_action="blubb",lallalaa
Nun mag ich den Teil action="..." erkennen und das "blubb" dann extra auslesen und in ein extra Chararry speichern. Das versuche ich mit den Befehlen strstr() und strchr() um zwei Zeiger an die Positonen um das blubb zu setzen und es klappt auch soweit ganz gut. Aber nur wenn ich die " weglasse .. also wenn es nur action=blubb, ist.
Problem macht der Befehl: strchr(p,'"'); bzw strchr(p,'\"');
Ich weiß nicht, wie ich das realisieren soll, irgendwie wird das " immer ignoriert. Wenn ich stattdessen auf ein , achte, dann geht es: strchr(p,',');
-
strchr(p,'\"');
-
escapesequenzen schrieb:
strchr(p,'\"');Geht leider nicht, wollt ich eigentlich auch so hinschrieben, aber irgendwie ist da was schief gegangen.
Aufjedenfall wenn ich das so hinschreibe, dann passiert nix und wenn ich daraus wieder strchr(p,','); mache geht es wieder.
-
Hi,
du könntest Dir auch eine eigen Funktion dafür schreiben:
als Bsp.
void extraFunk(char *strQuell, char *strZiel);
void extraFunk(char *strQuell, char *strZiel) { int n = 0; int i = 0; for(i; i <= strlen(strQuell); i++) { if(strQuell[i++] == '"') // Wenn ein " im String vorkommt dann { while(strQuell[i] != '"') // schreibe die folgenden Zeichen solange in str2 bis strZiel[n++] = strQuell[i++]; // wieder ein " auftaucht. n und i wird inkrementiert } } }Der Code ist jetzt nicht getestet, aber sollte so in etwa fuktionieren.
Gruß
MarkusEDIT: Wenn Du noch das Sonderzeichen übergibst, dann wird die Funktion noch flexibler. Also z.B.:
void extraFunk(char *strQuell, char *strZiel, char sign);
und dann im Code statt auf " dann halt auf sign überprüfen.