在 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');
我一直在寻找这个,但其他答案让我感到困惑。
我只想在 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');