0

我想将一个字符串转换为 4 个整数。

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,所以 usingsizeof会给出一个意外的数字。只需使用size成员函数:

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