簡體   English   中英

Substr()運行時錯誤:已調用R6010中止

[英]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。

我想問題是因為s​​ubstr超出范圍,但不知怎的,我不能讓它工作。

std::string是一個類,而不是char數組,因此使用sizeof將給出一個意外的數字。 只需使用size成員函數:

const unsigned int s_size = s.size();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM