[英]Problems converting a Char to an Integer in C++
我一直在尋找這個,但是其他答案使我感到困惑。 我只想在C ++中將char轉換為整數。 我已經讀過一些關於atoi
函數的內容,但是它對我不起作用。 這是我的代碼:
string WORD, word;
cout<<"PLEASE INPUT STRING: "<<endl;
getline(cin,WORD);
for(int i=0; i<WORD.length(); i++){
if(isdigit(WORD[i])){
word = atoi(WORD[i]); //Here is my problem.
}else{
cout<<"NO DIGITS TO CONVERT."<<endl;
}//else
}//for i
順便說一句,我先檢查字符是否是數字。
atoi采用NUL終端字符串。 它不適用於單個字符。
您可以執行以下操作:
int number;
if(isdigit(WORD[i])){
char tmp[2];
tmp[0] = WORD[i];
tmp[1] = '\0';
number = atoi(tmp); // Now you're working with a NUL terminated string!
}
如果WORD[i]
是數字,則可以使用表達式WORD[i] - '0'
將數字轉換為十進制數。
string WORD;
int digit;
cout<<"PLEASE INPUT STRING: "<<endl;
getline(cin,WORD);
for(int i=0; i<WORD.length(); i++){
if ( isdigit(WORD[i]) ){
digit = WORD[i] - '0';
cout << "The digit: " << digit << endl;
} else {
cout<<"NO DIGITS TO CONVERT."<<endl;
}
}
**您可以通過以下方法解決:
digit = WORD[i] - '0';
用錯誤的線代替它。
你可以
添加:編輯,以吸引殘酷的關注**
由user4437691回答,並附加了一個內容。 您不能使用=
將string設置為int,但是可以根據以下參考將其設置為char: http : //www.cplusplus.com/reference/string/string/operator=/
因此將其轉換為char。
字=(字符)(WORD [i]-'0');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.