Ich versuche, ein Programm in C zu schreiben, die mir eine Zeichenfolge, die ich möchte, zwischen zwei anderen Zeichenfolgen, die definiert werden, erhalten wird. Um genauer zu sein, mein Beispiel StringGet Teilstring von String in C
"blahblah<mailto:[email protected]>blahblahblah"
und ich muss in der Lage sein, die „Agent007“ Teilkette auf eine neue Variable zu extrahieren. Ich habe die Methode strtok() ausprobiert, aber die Sache ist, dass ich die Token nicht zu einer neuen Variablen oder einem Array extrahieren kann. Ich habe die Zeichenkette in Tokens umgewandelt und die Anweisung, die mir in Ordnung wäre, würde etwa so aussehen: "if token [i] ==" mailto "& & token [i + 2] ==" beispiel "dann mailAdd = token [i + 1 "] (in einer Pseudo-Code Art und Weise :))
mein Programm so weit
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="blahblah<mailto:[email protected]>blahblahblah";
char * tch;
tch = strtok (str,"<:@");
while (tch != NULL)
{
printf ("%s\n",tch);
tch = strtok (NULL, "<:@");
}
return 0;
}
natürlich kann jede andere Anregung über Token wird sehr geschätzt -
Token scheinen mir vernünftig. Ich weiß nicht genau, welches Problem Sie haben. Warum können Sie die Token nicht extrahieren? –
Hallo Jonathan. Ich kann anscheinend keine Möglichkeit finden, das Token in eine Char-Variable zu exportieren und später im Programm für andere Berechnungen zu verwenden. Habe ich einen Sinn? :) –
Wenn Sie es wiederverwenden möchten, müssen Sie die 'tch' Zeichenfolge irgendwo kopieren:' tch' selbst ändert sich ständig. Beachten Sie, dass 'strtok' die ursprüngliche Zeichenfolge ändert. Nach deiner Schleife (wenn ich die Berechnungen nicht durcheinandergebracht habe) zeigt "str + 0" auf "blahblah"; 'str + 9' zeigt auf" mailto "; 'str + 16' zeigt auf" agent007 "; und "str + 25" verweist auf "example.org> blahblahblah". – pmg