0

文字列を4つのintに変換したいと思います。

bignum::bignum(const std::string& s){
    std::string tmp;
    const unsigned int s_size = sizeof(s)/sizeof(char);
    const unsigned int max_size = 4; 
    const unsigned int parts = s_size/max_size; 
    unsigned int x = 3;

    for(int i = s_size;i>0;i-=4){
        tmp = s.substr(s_size-max_size, max_size);
        std::cout << num[x] << std::endl;
        std::istringstream (tmp) >> num[x--];
    }
}

num は int 型のベクトルです。

問題は substr が範囲外であるためだと思いますが、どういうわけか機能しません。

4

1 に答える 1

2

std::stringはクラスであり、の配列ではないcharため、 を使用sizeofすると予期しない数値が得られます。size代わりにメンバー関数を使用してください。

const unsigned int s_size = s.size();
于 2013-07-14T19:53:22.680 に答える