string alles klein funktioniert nicht



  • in vc6 projekt hatte ich das:

    string text="Hello World";
    transform(text.begin(), text.end(), text.begin(), tolower);
    Ergebnis: text = "hello world"

    aber cbuilder mag das so nicht. 😕



  • "Mag das nicht" oder "funktioniert nicht" sind keine aussagekräftugen Fehlermeldungen oder Problembeschreibungen.

    Davon abgesehen: sieh dir in der Hilfe die Funktion LowerCase() an.



  • 2huhu2 schrieb:

    aber cbuilder mag das so nicht. 😕

    ...faszinierend, dass der CBuilder mit dir so emotional kommuniziert....

    im Ernst: Wie wärs mit einer verünftigen aussage? Die zitierte ist etwa so aussagekräftig wie "Im Sommer ists wärmer als draussen"...

    -junix

    EDIT: Verdammt (o; Aber jansen. LowerCase funktioniert doch eher mit Ansi- als mit stl-Strings oder?



  • E2285 Keine Übereinstimmung für 'transform<InputIterator1,InputIterator2,OutputIterator,BinaryOperation>(char *,char *,char ,charT ()(charT,const locale &))' gefunden.

    er kennt es aber will wohl nicht wirklich und wie gesagt vc6 schluckt das so.



  • Sieht nach einem Problem entweder im Compiler oder der STL-Implementierung in den älteren BCB-Versionen. Im BCB6 funktioniert das Beispiel problemlos.

    Eventuell kannst du mit diesem Workaround etwas anfangen:

    char MyCharLower(char &c)
    {
     return (tolower(c, locale()));
    }
    ...
    
    transform(text.begin(), text.end(), text.begin(), MyCharLower);
    


  • ich hatte das mitlerweile so gelöst

    AnsiString t = text.c_str();
    text = t.LowerCase().c_str();

    aber deine Lösunge gefällt mir besser ... danke schön 👍



  • Hi!

    Warum macht ihr das nicht so:??

    char *x = "Hallo";
      x = LowerCase(x).c_str();
    

    LowerCase ist nicht nur ne Methode von AnsiString, sondern is doch auch ne normale Funktion aus SysUtils ??! :p

    tschüss
    Robert


Anmelden zum Antworten