werte in einem std::string verändern



  • hi,

    ich habe in einem std::string eine zahl drin stehen, von der ich 1 subtrahieren will. Ich wollte mir dafür die eigenschaften von chars zu gute machen, das ich mit denen auch rechnen kann, subtrahieren kann ich den wert, allerdings beim ersetzen des alten zahlenwertes mit dem neuen krieg ich ein problem

    das klappt nämlich net

    char b;
    
    b = (*sFnk.substr(iExpo+1,1).c_str() -1);
    sFnk.replace(iExpo+1,1,b);
    

    in b steht die richtige zahl drin, nur beim bedienen des replace befehls fall ich auf die schnauze. was mach ich falsch?



  • Siehe FAQ "Einmal von Zahl nach String und zurück"



  • also ich habs mit ner vorschlaghammer methode jetzt hinbekommen, entspricht ja nicht ganz dem, was ich wollte, aber so funktionierts.

    Is das so jetzt "unsauber" oder kann das wie ich das gemacht hab zu nebeneffekten führen?

    (b ist ein char, sFnk ein std::string)

    b = (*sFnk.substr(iExpo+1,1).c_str() -1);
    			std::string temp;
    			temp = b;
    			sFnk.replace(iExpo+1,1,temp.substr(0,1).c_str());
    


  • Wie wärs damit

    char b = sFnk[iExpo+1] - 1;
    sFnk[iExpo+1] = b;
    

Anmelden zum Antworten