C++ : 关于字符与字符串的相互转换
1.字符串换成数字
代码如下:
#include
#include
#include
template
bool from_string(T &t,
const std::string &s,
std::ios_base & (*f)(std::ios_base&))
{
std::istringstream iss(s);
return !(iss>>f>>t).fail();
}
int main()
{
int i;
float f;
if(from_string(i, std::string(“ff”), std::hex)){
std::cout<<i<<std::endl;
}
else{
std::cout<<“from_string failed”<<std::endl;
}
if(from_string(f,
std::string(“123.456”),
std::dec))
{
std::cout<<f<<std::endl;
}
else{
std::cout<<“from_string failed”<<std::endl;
}
return 0;
}
运行结果如下:
2.字符数字转换为对应的整型数字
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
char ch = ‘5’;
int n = ch - ‘0’;
printf(“n=%d\n”,n);
printf(“n=%c\n”,n);
return 0;
}
运行结果如下:
3.整型数字转换为相应的字符数字
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n = 8;
char ch = (char)(‘0’+n);
printf(“ch=%c\n”,ch);
printf(“ch=%d\n”,ch);
return 0;
}
运行结果如下:
4.把数字转换成字符串(使用sprintf系列函数)
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int num_int = 435;
double num_double = 435.10f;
char str_int[30];
char str_double[30];
itoa(num_int, str_int, 10);
gcvt(num_double, 8, str_double);
printf(“str_int: %s\n”, str_int);
printf(“str_double: %s\n”, str_double);
return 0;
}
运行结果如下: