1、字符串数字之间的转换

(1)string --> char *
   string str("OK");
   char * p = str.c_str();

(2)char * -->string
   char *p = "OK";
   string str(p);

(3)char * -->CString 
   char *p ="OK";
   CString m_Str(p);
   //或者
   CString m_Str;
   m_Str.Format("%s",p);

(4)CString --> char *
   CString str("OK");
   char * p = str.GetBuffer(0);
   ...
   str.ReleaseBuffer();

(5)string --> CString  
   CString.Format("%s", string.c_str());

(6)CString --> string
   string s(CString.GetBuffer(0));  
   GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间,CString对象不能动态增长了。

(7)double/float->CString
   double data;
   CString.Format("%.2f",data); //保留2位小数

(8)CString->double
   CString s="123.12";
   double   d=atof(s);   
 
(9)string->double
  double d=atof(s.c_str());

2、数字转字符串:使用sprintf()函数

char str[10];
int a=1234321;
sprintf(str,"%d",a);
--------------------
char str[10];
double a=123.321;
sprintf(str,"%.3lf",a);
--------------------
char str[10];
int a=175;
sprintf(str,"%x",a);//10进制转换成16进制,如果输出大写的字母是sprintf(str,"%X",a)
--------------------
char *itoa(int value, char* string, int radix); 
同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数。

3、字符串转数字:使用sscanf()函数

char str[]="1234321";
int a;
sscanf(str,"%d",&a);
.............
char str[]="123.321";
double a;
sscanf(str,"%lf",&a);
.............
char str[]="AF";
int a;
sscanf(str,"%x",&a); //16进制转换成10进制

另外也可以使用atoi(),atol(),atof().

4、使用stringstream类

用ostringstream对象写一个字符串,类似于sprintf() 
  ostringstream s1;
  int i = 22;
  s1 << "Hello " << i << endl;
  string s2 = s1.str();
  cout << s2;

用istringstream对象读一个字符串,类似于sscanf() 
  istringstream stream1;
  string string1 = "25";
  stream1.str(string1);
  int i;
  stream1 >> i;
  cout << i << endl;  // displays 25

http://blog.csdn.net/zhanghefu/article/details/39188031

最新文章

  1. SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600
  2. 数据库触发器inserted和deleted详解
  3. C/C++二维数组的用法
  4. Linux下高并发socket最大连接数所受的各种限制
  5. C#生成DBF文件
  6. JIRA官方:JIRA源代码集成
  7. unlinking
  8. Android中自定义veiw使用Java中的回调方法
  9. poj 1384完全背包
  10. B. Gerald is into Art
  11. 深度解析Java内存原型
  12. scikit-learn 决策树 分类问题
  13. Hdoj 2108.Shape of HDU 题解
  14. MobSF移动渗透测试框架
  15. IDEA使用笔记(一)——使用前的基本设置
  16. IO(字节流)
  17. 如何写一个Xss Bot
  18. HDU 1256 画8 模拟题
  19. VirtualBOX 不能mount优盘,移动硬盘解决方案
  20. JAVA 线程状态转换

热门文章

  1. Week14(12月9日)
  2. Spring boot 启动过程解析 logback
  3. 强大的Mockito测试框架(转)
  4. zoj p3780 Paint the Grid Again
  5. js获取控件位置
  6. redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
  7. 解析带有命名空间问题web.xml
  8. [Swust OJ 217]--Factor(数论,类素数表)
  9. KVO(键-值观察)
  10. 我也来说说C#中的异步:async/await