strstr wort in Zeile gefunden.... möchte bis bestimten Zeichen Text ausgeben



  • Hallo ich muss gerade ein Programm in ANSI C schreiben, und habe keine Ahnung davon.

    Nun habe ich also volgendes Problem.

    Ich habe mit strstr eine bestimmte Zeile mit dem Wort "Probe" gefunden.
    soweit so gut.

    Jetzt möchte ich in der Zeile das Wort "Test1=" finden und alle Zeichen nach dem "=" bis zum Leerzeichen ausgeben.

    Kann mir jemand ein kleines Script Posten wie das gehen soll.
    Ich hätte damit mal eine Grundlage.

    Vielen Dank

    #define BUF 255
    
    int testdh()
    {
       FILE *f;
       char searchstring[BUF];
       char puffer[BUF];
       int counter=1;
    
       f=fopen("C:\\XMLtoUA.xml","r");
       if(f == NULL)
          {
             printf("Fehler bei fopen()...");
             exit(0);
          }
    
       while( fgets(puffer, BUF, f) != NULL )
          {
             if(strstr(puffer,"<Probe") != 0)
                printf("Zeile %d : %s",counter,puffer);
             counter++;
          }
       printf("\n");
       return 0;
    }
    


  • mal so im ersten anlauf als tipp:

    char* p;
    
    //...
    p = strstr(puffer,"Test=");
    if ( p!=NULL )
    {
        while(*p != '=')
        p++;
        p++;
        while(*p== ' ') p++;
        while (*p)
        {
            if (*p==' ')
            break;
            puchar(*p);
        }
    }
    //...
    


  • char  *p, *s;
    
    p = strstr(puffer,"Test=");
    if(p!=NULL){
        p += 5;        //da Länge von "Test=" bekannt
        s = strchr(p, ' ');
        if(s!=NULL){
            *s = '\0';   //p zeigt nun auf den String den du benötigst
        }
    }
    

Anmelden zum Antworten