簡體   English   中英

C ++中類型之間的轉換

[英]conversion between types in c++

我來自其他編程語言,但我不明白為什么這段代碼會引發錯誤。

string n = "123456";
int x;

for(int i = 0; i < n.length(); i++) {

    x = atoi( n[i].c_str() );
    x *= 2;
    cout << x << endl;
} 

您能為我解釋這次事故嗎? 並告訴我如何正確將其轉換為整數?

查看std::basic_string::operator[]返回類型 :它是reference還是const_reference 即,對一個character的(常量)引用。 對於std::string ,這意味着您獲得對char的引用,而不是std::string

C ++保證數字的字符值是連續的且遞增的。 換句話說,無論使用哪種字符編碼,都可以確保'1' - '0' == 1'2' - '0' == 2等。 因此,將包含數字的char轉換為數字的值的方法就是這樣做:

x = n[i] - '0';

暫無
暫無

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

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