C++ string、int和char的相互转换
程序员文章站
2022-07-14 23:30:39
...
首先,需要强调的是:0-9对应的ASCLL码值为48-57
其次,从string中访问得到的string[index]为char类型,用单引号’c’表示
1.char转int
用char减去’0’即可得到char对应的int值,char减去整数0得到其ASCII值。
int main() {
char c = '1';
cout << c - 0 << endl;//49
cout << c - '0' << endl;//1
}
2.int转char
int值加上’0’,即可得到对应的char。
int main() {
int i = 1;
char c = i + '0';
cout << c << endl;//'1'
}
3.char*转int
利用std::atoi()将char*转为int。
int main() {
const char* s = "1234";
int intS = atoi(s);
cout << "char* 转int: " << intS << endl;//1234
}
4.int转string
利用std::to_string可以实现int转string。
int main() {
int i = 11111;
string c = to_string(i);
cout << c << endl;//"11111"
}
5.string转int
将string类型转为int类型,需先使用c_str()将string转为const char*,之后调用std::atoi()将得到的const char*转换为int。
int main() {
string str("5678");
//此写法会报错
//int intStr = atoi(str);
//需先将string转成char*
int intStr = atoi(str.c_str());
cout << "string 转int: " << intStr << endl;//5678
}
上一篇: string,int,char 相互转换
下一篇: 字符数组_串的实现