warum geht das nicht?



  • hi!!!!!!!!
    ich muss nach einem string suchen mit strstr!!!!!! bitte da um hilfe:
    weil was mach ich wenn:
    char var1[]={"<php> ht:<sql/ connetionstring=var>http://212.142.234.95/Chat.php connetion=true"};
    ist???? das kann auch vorkommen!!!! das ist dann nicht eindeutig genug!!!

    bitte um help!!

    lg surf.



  • in einer anderen textdatei heißt schaut das so aus:
    char var1[]={"<php> ht:<sql/ connetionstring=var>http://212.142.234.95/Guestbook.php connetion=true"};

    das heißt ich muss nach http:// suchen und nach dem nächsten / Zeichen nach http:// das ist das Zeichen vor dem Guestbook.php!!!

    lg surf.



  • Schon mal was von Handbüchern und Hilfefunktionen gehört.

    Lebendes lexikon ist ja toll, aber warum sollen andere suchen, wenn man es selber kann?



  • code:

    int main(void)
    {

    char text[] = "Das ist hp:1213/ http://212.123.234.78/chat.php ein Teststring";
    int i,b,hilf,j,aktivate;
    char Buffer[2000];
    char Buffer2[2000];
    int Laenge, result;
    i=0;
    b=0;
    j=0;
    aktivate=0;
    result=0;
    Laenge=0;
    hilf=0;

    Laenge=strlen(text);

    for(b=0;b<Laenge;b++)
    {
    if (text[b]=='h')
    {
    if(hilf==0)
    {
    result=1;
    hilf=1;
    }
    }
    else if ((text[b]=='t')&(text[b-1]=='h'))
    result++;
    else if ((text[b]=='t')&(text[b-1]=='t')&(text[b-2]=='h'))
    result++;
    else if ((text[b]=='p')&(text[b-1]=='t')&(text[b-2]=='t')&(text[b-3]=='h'))
    result++;
    else if ((text[b]==':')&(text[b-1]=='p')&(text[b-2]=='t')&(text[b-3]=='t')&(text[b-4]=='h'))
    result++;
    else if ((text[b]=='/')&(text[b-1]==':')&(text[b-2]=='p')&(text[b-3]=='t')&(text[b-4]=='t')&(text[b-5]=='h'))
    result++;
    else if ((text[b]=='/')&(text[b-1]=='/')&(text[b-2]==':')&(text[b-3]=='p')&(text[b-4]=='t')&(text[b-5]=='t')&(text[b-6]=='h'))
    result++;
    printf("%d",result);

    if(result<=7)
    {
    printf("%c\n",text[b]);
    Buffer[i++]=text[b];

    if(result==7)
    {

    while(b<Laenge)
    {
    b++;
    if (text[b]=='/')
    aktivate=1;
    if(aktivate==1)
    Buffer2[j++]=text[b];
    }

    break;
    }

    }
    }

    Laenge=0;
    Buffer[i++]='\0';
    Buffer2[j++]='\0';
    Laenge=strlen(Buffer);

    i=0;
    while(i<Laenge)
    {
    printf("%c",Buffer[i++]);
    }

    Laenge=0;
    Laenge=strlen(Buffer2);
    j=0;
    printf("\n");

    while(j<Laenge)
    {
    printf("%c",Buffer2[j++]);
    }

    getch();
    }

    wie kann ich das auf einfache weiße machen???????
    bitte um hilfe....mit strstr!!!!!!!!!!!!!!!!!hab net so den durchblick mit strstr!!!!

    lg surf



  • int main(void)
    {
    
    char text[] = "Das hhhist hp:1213/ http://212.123.234.78/chat.php ein Teststring";
    int i,b,weiter1,j,weiter2,Laenge, result;
    char Buffer1[2000], Buffer2[2000], *string1, *string2;
    
    // Variablen inizializieren
    i=0;
    b=0;
    j=0;
    weiter2=0;
    result=0;
    Laenge=0;
    weiter1=0;
    
    // Länge den Stringes: Text bestimmen
    Laenge=strlen(text);
    
    for(b=0;b<Laenge;b++)
    {
         // Wenn das Zeichen 'h' gefunden wird
         if (text[b]=='h')
          {
           // Das Zeichen 'h' nur einmal einlesen
           if(weiter1==0)
           {
           result++;
           weiter1=1;
           }
          }
          // Wenn die Zeichen 'h' und 't' hintereinander gefunden werden
          else if ((text[b]=='t')&(text[b-1]=='h'))
           result++;
          // Wenn die Zeichen 'h', 't', 't' hintereinander gefunden werden
          else if ((text[b]=='t')&(text[b-1]=='t')&(text[b-2]=='h'))
           result++;
          // Wenn die Zeichen 'h', 't', 't', 'p' hintereinander gefunden werden
          else if ((text[b]=='p')&(text[b-1]=='t')&(text[b-2]=='t')&(text[b-3]=='h'))
           result++;
          // Wenn die Zeichen 'h', 't', 't', 'p', ':' hintereinander gefunden werden
          else if ((text[b]==':')&(text[b-1]=='p')&(text[b-2]=='t')&(text[b-3]=='t')&(text[b-4]=='h'))
           result++;
          // Wenn die Zeichen 'h', 't', 't', 'p', ':', '/' hintereinander gefunden werden
          else if ((text[b]=='/')&(text[b-1]==':')&(text[b-2]=='p')&(text[b-3]=='t')&(text[b-4]=='t')&(text[b-5]=='h'))
           result++;
          // Wenn die Zeichen 'h', 't', 't', 'p', ':', '/', '/' hintereinander gefunden werden
          else if ((text[b]=='/')&(text[b-1]=='/')&(text[b-2]==':')&(text[b-3]=='p')&(text[b-4]=='t')&(text[b-5]=='t')&(text[b-6]=='h'))
           result++;
    
          // Solange die 7 Zeichen: http:// nicht gefunden wurden
          if(result<=7)
          {
           // Zeichen bis ende des http:// in Buffer1 einlesen
           Buffer1[i++]=text[b];
    
           // Wenn http:// gefunden
           if(result==7)
           {
    
           // Solange nicht das Ende des Stringes text erreicht wird
           while(b<Laenge)
            {
              b++;
              // nach dem nächsten / suchen
              if (text[b]=='/')
                weiter2=1;
              if(weiter2==1)
                // Zeichen ab / bis ende des Stringes text in Buffer2 einlesen
                Buffer2[j++]=text[b];
            }
           }
          }
    }
    
       // Variablen mit \0 abschließen damit es ein String ist
       Buffer1[i++]='\0';
       Buffer2[j++]='\0';
    
       // Variable in einen neuen Speicherbereich geben
       string1 = strdup(Buffer1);
       string2 = strdup(Buffer2);
    
       printf("%s\n",string1);
       printf("%s",string2);
    
    getch();
    }
    

    hi@all!!! gibt es auch eine einfachere lösung mit strstr...wo ich nach http:// suche???? damit das gleiche ergebnis raus kommt????

    lg surf.



  • 😡 Jetzt lies doch endlich mal ne hilfe, oder schau im Internet in der msdn nach, da gibts beispiele!!!! 😡



  • Wie gesagt, wieso nicht einfach den String der scheinbar immer verwendet wird in Variablen speichern, IP einfügen, zweiten Stringteil an den ersten hängen und wegschreiben. 🙄

    Ansonsten würde ich dir auch raten: MSDN, div. Suchmaschinen oder....ein BUCH! Eine erfindung die gerade bei der Programmierung mit C++ beachtet werden sollte, aber die wenigsten scheinen das du verstehen das man für es nicht nur mit 100 Tutorials schaffen und kann und selbst wenn doch, so habe ich wesentlich mehr mit einem Buch für 10€ erreich wo alles zwar nur kurz, aber sehr verständlich und anschaulich erklärt wird....

    Code-Hacker



  • surf. schrieb:

    hi@all!!! gibt es auch eine einfachere lösung mit strstr...wo ich nach http:// suche???? damit das gleiche ergebnis raus kommt????

    doku lesen scheint nicht deine Stärke zu sein, was? Klick: man: strstr(3)

    char text[] = "Das hhhist hp:1213/ http://212.123.234.78/chat.php ein Teststring";
    char *tmp = strstr(text, "http://");
    
    if(tmp == NULL) HTTP:// NICHT GEFUNDEN --> exit
    


  • supertux, ich glaube nach 5 Jahren interessiert das nicht mehr 😉



  • Tim schrieb:

    supertux, ich glaube nach 5 Jahren interessiert das nicht mehr 😉

    das verstehe ich nicht 😞 bitte um Erklärung



  • supertux schrieb:

    das verstehe ich nicht 😞 bitte um Erklärung

    Der letzte nicht-Spam-Beitrag ist von Oktober 2003.


Anmelden zum Antworten