簡體   English   中英

在C ++中將Char轉換為整數的問題

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

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