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;
    }
    

Anmelden zum Antworten