我想将字符串转换为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超出范围,但不知怎的,我无法让它工作。
答案 0 :(得分:2)
std::string
是一个类,而不是char
的数组,因此使用sizeof
会给出一个意外的数字。只需使用size
成员函数:
const unsigned int s_size = s.size();