在 C++ 中将 Char 转换为 Integer 的问题

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 采用以 NULL 结尾的字符串。它不适用于单个字符。

你可以这样做:

int number;
if(isdigit(WORD[i])){
     char tmp[2];
     tmp[0] = WORD[i];
     tmp[1] = '[=10=]';
     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'; 

换成你错的行。

你可以

添加 :edited for cruelcore attention**

根据 user4437691 的回答,有补充。您不能使用 = 将字符串设置为 int,但您可以根据此参考将其设置为 char:http://www.cplusplus.com/reference/string/string/operator=/

因此将其转换为 char。

word = (char) (WORD[i] - '0');