[英]Substr() Runtime error: R6010 abort has been called
我想將一個字符串轉換為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超出范圍,但不知怎的,我不能讓它工作。
std::string
是一個類,而不是char
數組,因此使用sizeof
將給出一個意外的數字。 只需使用size
成員函數:
const unsigned int s_size = s.size();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.