一、int转换成string
string to_string(int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);
to_string函数的实现
在这里插入代码片
//实现to_string函数
#include<iostream>
#include<string>
using namespace std;
#define max 100
string to_String(int n)
{
int m = n;
char s[max];
char ss[max];
int i=0,j=0;
if (n < 0)// 处理负数
{
m = 0 - m;
j = 1;
ss[0] = '-';
}
while (m>0)
{
s[i++] = m % 10 + '0';
m /= 10;
}
s[i] = '\0';
i = i - 1;
while (i >= 0)
{
ss[j++] = s[i--];
}
ss[j] = '\0';
return ss;
}
int main()
{
cout << "请输入整数:";
int m;
cin >> m;
string s = to_String(m) + "abc";
cout << s << endl;
system("pause");
return 0;
}
二、string转int类型
atoi函数,atof函数,atol函数
std::string str = "123";
int n = atoi(str.c_str());
cout<< n;
atoi函数实现
#include<iostream>
enum ret { kvalid=0,kinvalid }; // 是否有非法输入的标记
int status = kvalid;
long long Strtointcode(const char* digit, bool minus)
{
long long num = 0;
while (*digit != '\0')
{
if (*digit >= '0'&&*digit <= '9')
{
int flag = minus ? -1 : 1;
num = num * 10 + flag*(*digit - '0');
if ((!minus&&num > 0x7FFFFFFF) ||( minus&&num < (signed int)0x80000000))
{
num = 0;
break;
}
digit++;
}
else
{
num = 0;
break;
}
}
if (*digit == '\0')
status = kvalid;
return num;
}
int Strtoint(const char* str)
{
status = kinvalid;
long long num = 0;
if (str != NULL&&*str != '\0')
{
bool minus = false;
if (*str == '+')
str++;
else if (*str == '-')
{
str++;
minus = true;
}
if (*str != '\0')
num = Strtointcode(str, minus);
}
return (int)num;
}
int main()
{
char arr[20];
int ret = 0;
printf("请输入您要转化的字符串:\n");
scanf("%s", arr);
ret = Strtoint(arr);
if (kvalid == status)
{
printf("%d\n", ret);
}
else
{
printf("输入非法\n");
printf("%d\n", ret);
}
system("pause");
return 0;
}
法二:
使用sstream头文件
isstringstream is("123");
int i;
is>> i;//从is流中将int整数存入i中