C++中数值和字符串的转换
在C++编程中,时常会遇到数值和字符串之间的转换,C-Style的atoi,atol,strtod,strtol,strtoul等函数在功能上有时候会略显不足,当然在C++中实现数值和字符串转换的形式各种各样,本文对自己在编程中遇到的情况进行了简单的总结。
1) 数值类型转为字符类型
char str[255];
int num = 100;
sprintf(str, "%d", num);
当然对于各种方式,可以进行任意的扩展和字符的链接。如:
char str[255];
int num = 100;
char postStr[]=".jpg";
sprintf(str, "%d absc %s", num,postStr);
除此,可以根据需要进行扩展。
2)使用stringstream对象进行转换
stringstream ss;
int num = 100;
string str;
ss<<num; //
ss>>str; // 输出 100的字符串
同样,可以任意的对ss进行扩展,如 :
ss<<"E:\\images\\<< num<<".jpg"; // 合成一个路径
3)字符串转换为数值
stringstream ss;
int num = 0;
string str(“1000”);
ss<<str;
ss>>num; // num的值就变成了1000
4)使用CString来格式化数值
CString cstr;
int num = 100;
string str(".jpg");
cstr.format("E:\\images\\%d%s",num,str);