整形数字、(C++字符串)string、(C类型字符串)char *之间的转换
- 将数字转换为char *类型的字符串
char str[15];
int num = 123456;
sprintf(str, "%d", num);
printf("str = %s\n", str);
//除sprintf()函数之外后还有itoa()函数
//value将要转换的值,str结果,对应的进制,比如10, 2, 8, 16
char *itoa(int value, char *str, int radix)
//但是不推荐使用,itoa()函数是非标准函数,只可以在windows上使用,在其他系统上使用不了,小编在ubuntu上试了,这样会出错。
- 数字转换为string类型的字符串
string ans;
int num = -12345;
ans = to_string(num);
cout << ans << endl;
- 将char *类型的字符串转换为数字
char str[15] = "-12345";
int ans = atoi(str);
- 将string类型的字符串转换为数字
string str = "-1235";
int ans = stoi(str);
- 将string类型转换为char *类型的字符串
string s1 = "-123";
char ans[15];
ans = s1.c_str();
- 将char *转换为string类型
char str1[15] = "-1223";
string s1 = "";
s1 += str1;
此外数字和string类型字符串之间的转换还可以通过字符串流来实现
#include <sstream> //字符串流对应的头文件
- 将数字转换为string
int num = -12345;
ostringstream oss;
oss << num;
string ans = oss.str();
- 将string转换为数字
string str = "-1234";
istringstream iss(str);
int ans;
iss >> ans;
printf("%d\n", ans);
以上代码小编亲测有效,小编也是怕忘记,所以整理了一下 😃