ausschneiden von wörtern
-
--------------------------------------------------------------------------------
moin leude,
ich hab folgendes ziel:
ich will aus einer email aus einer zeile ein bestimmtes wort raussuchen und auf den moni ausgeben lassen.hab bis jetzt..
#include <stdio.h>
#include <string.h>
int main()
{char Test1[100] = "Return-Path: HertzBK@arcor.de";
char Test2[100] = "Return-Path: <";
char *Test3;Test3 = strstr(Test1, Test2);
Test3 = Test3 + strlen(Test2);printf("%s", Test3);
getchar();
return 0;
}also ergebniss bekommt ich "HertzBK@arcor.de>" raus... erwünscht ist aber "HertzBK@arcor.de".
wie mach ich das
thx
-
Die Frage liegt nur wenige Posts zurück: http://www.c-plusplus.net/forum/viewtopic.php?t=98898
btw: Das Board verfügt über eine Suchfunktion
-
sebbo#84 schrieb:
hab bis jetzt... [...] als ergebnis bekommt ich "HertzBK@arcor.de>" raus... erwünscht ist aber "HertzBK@arcor.de".
Das sieht ja schon mal ganz gut aus. In diesem speziellen Fall würde es ja schon genügen, den gefundenen String nach dem "Endzeichen" '>' zu durchsuchen, und den String dann an dieser Stelle zu beenden (durch ein '\0'). Ich hab das mal in Deinen Code eingebaut. Eine kleine Unschönheit noch: Der Bufferinhalt wird dabei leider verändert; d. h. wenn das ein Problem ist, musst Du halt eine Kopie desselben anlegen.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char buffer[100] = "Return-Path: <HertzBK@arcor.de> und bla bla..."; char such[100] = "Return-Path: <"; char *pointer; pointer = strstr(buffer, such); if (pointer != NULL) { pointer = pointer + strlen(such); // Endzeichen ist '>' // for (int i = 1; pointer[i] != '\0'; i++) { if (pointer[i] == '>') { pointer[i] = '\0'; break; } } printf("%s", pointer); } else { printf("Fehler: Keine E-mail-Adresse gefunden!\n"); } getchar(); return 0; }