Substr



  • Gibt es beim CString nicht die Funktion substr? ­čś«

    Wenn ich sie anwendnen will, kommt immer:

    CString sAusgabe = strtok2.substr(2);
    

    Error 2 error C2039: 'substr' : is not a member of 'ATL::CStringT<BaseType,StringTraits>'



  • Nein, offensichtlich gibts diese Funktion beim CString nicht. substr(..) ist eine Funktion von std::basic_string bzw. std::string / std::wstring.

    http://msdn.microsoft.com/en-us/library/5bzxfsea.aspx
    http://msdn.microsoft.com/en-us/library/abzc9989.aspx

    Die ├Ąquivalente Funktion des CString's (hier sind AFAIK MFC und ATL Version) herauszufinden ├╝berlasse ich dir.

    Simon

    Korrektur: hier sind AFAIK MFC und ATL Version gleich



  • theta schrieb:

    Nein, offensichtlich gibts diese Funktion beim CString nicht. substr(..) ist eine Funktion von std::basic_string bzw. std::string / std::wstring.

    Simon

    Gibt es keine Alternativen?
    Es muss doch m├Âglich sein, mitm CString auch nur ein Teil auszugeben?!



  • Gibt es keine Alternativen?
    Es muss doch m├Âglich sein, mitm CString auch nur ein Teil auszugeben?!

    Klar, aber:

    Die ├Ąquivalente Funktion des CString's (hier sind AFAIK MFC und ATL Version) herauszufinden ├╝berlasse ich dir

    Simon



  • Was glaubst du warum ich mich ans Forum wende?



  • Kaiserr schrieb:

    Was glaubst du warum ich mich ans Forum wende?

    Die Frage beantworte ich mal nicht.

    Schau doch mal den zweiten Link in meinem ersten Post an.
    Simon



  • theta schrieb:

    Kaiserr schrieb:

    Was glaubst du warum ich mich ans Forum wende?

    Die Frage beantworte ich mal nicht.

    Schau doch mal den zweiten Link in meinem ersten Post an.
    Simon

    Ah danke.
    Hab da nun die Auszugsm├Âglichkeiten gefunden.
    Aber warum machen die das mit left, right und middle?

    Hab nun mal ein Beispiel versucht:

    CString sTest = strtok2.Left(2);
    cout << sTest;
    

    Ehm der zeigt mir nun aber ne Zahl (00D91C1) und kein Auszug des Strings an.



  • Ah nun gehts.
    Habs jetzt mit

    wprintf(_T("\nTest: %s \n"), sTest);

    ausgegeben. ­čśë

    Aber wie mache ich es, dass er die ersten zwei Buchstaben ausl├Ąsst und den Rest liest.

    Sprich bei

    XXtest
    XXabcde
    XXpeter
    XXwunderland

    soll er immer
    test
    abcde
    peter
    wunderland

    ausgeben



  • int nnn = strtok2.Delete(0, 2);
    

    In Hass, Hack0r



  • Nur als Erg├Ąnzung: Mit cout geht's auch:

    cout << sTest.GetString();
    

    MfG,

    Probe-Nutzer



  • Wenn Du dir nicht die m├╝he machst selbst nachzusehen dann muss ich hier schlie├čen.
    Mid ist eine Member der Klasse CString genauso wie substr eine Member der Klasse string aus std ist.

    Wenn du c++ verwendest bist DU hier sowieso falsch. daf├╝r gibts ein Unterforum.



  • Bevor du mit jemand anderem an irgendeinem Projekt arbeiten kannst (hattest du ja schon mal erw├Ąhnt), solltest du dir erstmal die F├Ąhigkeit aneignen, dir selbstst├Ąndich Informationen besorgen zu k├Ânnen. Programmierer sind Autodidakten. Wer das nicht ist, hat ein dickes, dickes Problem.

    Desweiteren w├╝rde ich dir raten, doch erstmal diesen komplizierten Windows-Quatsch sein zu lassen und dir die Basics mit kleinen, ├╝berschaubaren Konsolenanwendungen 'reinzuziehen. Mit einer gesunden Basis kann man sich dann auch bedenkenlos auf MFC und Konsorten st├╝rzen...


Log in to reply