欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
}
相关标签: C++基础知识