簡體   English   中英

錯誤:無法將參數1的const字符串轉換為const char *到size_t strlen(const char *)

[英]error: cannot convert const string to const char* for argument 1 to size_t strlen(const char*)

我對C ++還是很陌生,對於這里發生的事情非常困惑。 錯誤是int len = strlen(strin); 任何建議如何解決此問題將不勝感激。

BigNum::BigNum(const std::string& strin)
{
    digits = NULL;

    int len = strlen(strin);

    if (len == 0)
    {
        BigNum zero;
        *this = zero;
        return;
    }

    used = len;
    positive = true;

    int i = 0;

    if(strin[i] == '-')  
    {
        positive = false;
        i = 1;
        used--;
    }
    else if(strin[i] == '+')  
    {
        i = 1;
        used--;
    }

    capacity = double_up_default(used);

    digits = new unsigned int[capacity];

    for(unsigned int k = 0; k < used; ++k) 
    {
        digits[used - k - 1] = strin[i++] - '0';
    }

    trim();
}

strlenstd::string一無所知。 它是一個C函數,該函數返回以null結尾的字符串的長度。

幸運的是std::string知道自己的長度。 嘗試以下方法:

int len = strin.size();

或者,如果您擔心字符串的大小范圍,

std::string::size_type len = strin.size();

暫無
暫無

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

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