Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » bug in std::string-mehtode find?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.05.2004, 15:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wiso findet der folgendes nicht?

angenommen ich habe einen std::string htmlfile

irgenwo steht in dem teil ....<td align="right">....

wenn ich jetzt folgendes mache


C++:
keyword2="<td align=\"right\">";
int st=0;
if((st=htmlfile.find(keyword2,st))==-1){std::cout<<"verwixte Scheisse";return;}


geht der in den ifzweig, warum?

mit
C++:
keyword2="align=\"right\">";

gehts...was soll der mist?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.05.2004, 15:47 Uhr
(un)wissender
Niveauwart


std::string::npos muss nicht -1 sein.
Außerdem muss npos nicht int sein, soweit ich weiß.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.05.2004, 16:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


mag ja sein das das von mir aus nicht -1 sein muss...
es ist bei mir aber immer -1 wenn ich nach <td align="right"> suche obwohls in der datei steht... wenn ich nur nach align="right"> suche findet der das

warum?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.05.2004, 16:21 Uhr
(un)wissender
Niveauwart


Das funzt, so wie es sollte, zumindest mit dem g++ 3.3.1.
Was mit VC++ 6 geht, weiß ich nicht, aber mit VS .NET 2003 geht es auch.


C++:
#include <iostream>
#include <string>

int main(int argc, char *args[])
{
    std::string htmlfile= "blabla<td align=\"right\">blabla";
    std::string keyword2="<td align=\"right\">";
    size_t st = 0;
    if((st=htmlfile.find(keyword2,st))== std::string::npos)
    {
        std::cout<<"verwixte Scheisse";
    }
    else
    {
        std::cout<< "Gefunden an: " << st << std::endl;
    }
    
    return 0;
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.05.2004, 16:24 Uhr
(un)wissender
Niveauwart


Ah, eventuell ist da noch ein Leerzeichen nach < bevor td beginnt?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.05.2004, 16:29 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


war eint totaler blackout meinerseits
liegt natürlich daran das ich die datei so einlese

C++:
while(in>>tmps)htmlfile+=tmps;


da killt der die spaces natürlich...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.05.2004, 16:41 Uhr
(un)wissender
Niveauwart


Wichtig ist auch, dass du Groß- und Kleinschreibung beachtest oder eben nicht, da html nicht case-sensitiv ist!
Also erst toupper oder sowas.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: