Desplazar la coma en una cadena numerica en c++

string ALU::moverComa(string cadena, int pos)
{
    string cadenaSol="";
    bool punto=false;
    for (int var = 0; var < cadena.length(); ++var) {
        if(cadena.substr(var,1)!="." && !punto){
            cadenaSol+=cadena.substr(var,1);
//            cout << cadenaSol << "\n";
        }else if(cadena.substr(var,1)=="."){
            punto=true;
        }else if(punto && pos>0){
            cadenaSol+=cadena.substr(var,1);
            pos--;
        }else if(pos==0){
            punto=false;
            cadenaSol+=".";
            cadenaSol+=cadena.substr(var,1);
        }


    }
    return cadenaSol;

}