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