因为在写项目或者刷OJ时总是碰到这类问题,所以这次统一处理一下
我不会列出所有的方法,只会列出自己认为最方便,最好用的方法
int char互转
int,char的相互转换和ASCII有关,这里不具体解释
int 转 char
int ia=9;
char ca=9+'0'; //ca=='9'
char 转 int
char ca='9';
int ia=ca-'0'; //ia==9
int string 互转
VS2010中to_string()的函数有BUG,string str=to_string(123)会报错
下面我会写微软建议的替代方案
int 转 string
int ia=123;
string sa=to_string(static_cast<long long>(ia)) //sa=="123"
貌似只有VS2010有这种BUG,如果碰巧你和我一样用着VS2010,但又不想每次int转string都这么麻烦,可以自己写个函数封装一下
std::string PlusOperation::intToString(int x)
{
return std::to_string(static_cast<long long>(x));
}
string 转 int
string sa="123";
int ia=stoi(sa);//ia==123
char string 互转
string转char
string通过下标访问就是char型
string str="abc";
char c=str[1]; //c=='b'
char转string
单个字符没办法转变为string,必须是字符数组
char c[3]={'a','b','c'};
string str(c,3); //str=="abc";
注意,在通过字符数组构造string的时候,要指定string的长度,不然会出现乱码!