std::string



  • Hallo Leute,

    Im letzten Thema haben mir einige hier angeraten, mich mit std::string zu beschäftigen, jetzt habe ich mal versucht, etwas mit std::string zu machen, und zwar eine Textausgabe. Dabei muss ich natürlich den übergebenen char so teilen, dass ich jeweils eine bestimmte Zeichenanzahl(ich habe mal intuitiv 100 genommen) habe, welche jeweils auf eine Zeile kommt.

    Nun habe ich mir überlegt, dafür nutze ich einfach substr, und teile den string auf. Dabei kam folgendes raus:

    string ausgabe = text;
        for (std::string::iterator position=ausgabe.begin(); position<ausgabe.end(); position+=100);
        {
          anztxt(10,20+position/5, ausgabe.substr(position, position+100) );    
        }
    

    Leider habe ich nun das Problem, dass ja der Iterator kein int ist, und weder position=100 noch position/5 etwas vernünftiges zu ergeben scheint.

    Außerdem sagt der Compiler noch:

    compiler schrieb:

    222 C:\Programme\Programmieren\Dev-Cpp\Projekte\Minispiele\TV\ress.cpp name lookup of `position' changed for new ISO `for' scoping

    Das hieße doch, Position wäre im for Dings nicht mehr gültig?

    Aber

    for (int i=1;i<10;++i)cout<<i<<endl;
    

    geht doch auch?

    Kann mir jemand sagen, wie ich den Iterator so umwandele, das es geht, und wie das mit dem Geltungsbereich von position ist?



  • Du willst den string um jeweils 100 Zeichen lange strings aufteilen?
    hier ein Beispiel, bei dem der string in jeweils 10 Zeichen aufgeteilt wird:

    string s("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ");
    for(string::size_type i = 0; i < s.length(); i += 10)
    	cout << s.substr(i, 10) << endl;
    


  • DaGeRe schrieb:

    string ausgabe = text;
    for (std::string::iterator position=ausgabe.begin(); position<ausgabe.end(); position+=100);
    

    DaGeRe schrieb:

    Aber

    for (int i=1;i<10;++i)cout<<i<<endl;
    

    geht doch auch?

    Siehst du den Unterschied? Kleiner Tip: Zähl mal die Anzahl der Semikolons.


Anmelden zum Antworten