string 转换为int
1.atoi
#include<iostream>
using namespace std;
int main()
{
int x = 0;
string str1 = "10";
string str2 = "-10";
string str3 = "10a";
x = atoi(str1.c_str());
cout << x << endl;
x = atoi(str2.c_str());
cout << x << endl;
x = atoi(str3.c_str());
cout << x << endl;
return 0;
}
2.strtol
long int strtol (const char str, char* endptr, int base);
str 为要转换的字符串,endstr 为第一个不能转换的字符的指针,base 为字符串 str 所采用的进制。
#include<iostream>
using namespace std;
int main()
{
int x = 0;
string str1 = "10";
string str2 = "-10";
string str3 = "10a";
x = strtol(str1.c_str(), nullptr, 10);
cout << x << endl;
x = strtol(str2.c_str(), nullptr, 10);
cout << x << endl;
x = strtol(str3.c_str(), nullptr, 10);
cout << x << endl;
return 0;
}
3.stoi
c11之后才有,需要引入 < string>
#include<iostream>
#include<string>
using namespace std;
int main()
{
int x = 0;
string str1 = "10";
string str2 = "-10";
string str3 = "10a";
x = stoi(str1);
cout << x << endl;
x = stoi(str2);
cout << x << endl;
x = stoi(str3);
cout << x << endl;
return 0;
}
4. stringstream
需要引入< sstream>
#include<iostream>
#include<sstream>
using namespace std;
int stringToInt(const string& s)
{
stringstream ss;
int result;
ss << s;
ss >> result;
return result;
}
int main()
{
string str1 = "10";
string str2 = "-10";
string str3 = "10a";
cout << stringToInt(str1)<<endl;
cout << stringToInt(str2)<<endl;
cout << stringToInt(str3)<<endl;
}
int 转换为string
1.sprintf_s
#include<iostream>
using namespace std;
int main()
{
int number = 10;
char buff[128] = { 0 };
sprintf_s(buff, 128, "%d",number);
cout << buff << endl;
}
2.stringstream
需要引入
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
int number = 10;
stringstream ss;
ss << number;
string str = ss.str();
cout << str << endl;
};
3.to_string
c11之后才可用,需引入string
#include<iostream>
#include<string>
using namespace std;
int main()
{
int number = 10;
string str =to_string(number);
cout << str << endl;
};
|