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);

相关内容