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