C++中数字与字符串之间的转换

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://www.cnblogs.com/luxiaoxun/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html

时间: 2024-10-03 19:17:31

C++中数字与字符串之间的转换的相关文章

c++中数字与字符串之间的转换方法(推荐)_C 语言

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(&q

Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使用String类的 valueOf() 方法 3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 再来看,将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 PS:其他基

BCD码简介及其与十进制数字字符串之间的转换

大家都知道在计算机中,数据的常用编码格式有二进制.八进制.十进制和十六进制等,这些编码格式之间可以相互转换.在电力通信协议中,很多数据都是用BCD格式来编码的,这些数据需要转换为普通的十进制数字串.本文首先对BCD码进行简单的介绍,然后用代码演示它与十进制数字字符串之间的转换. BCD码简介 BCD码(Binary Coded Decimal‎)是一种二进制的数字编码形式,它是用二进制编码的十进制代码.这种编码形式利用四个位来储存一个十进制数,使得二进制和十进制之间的转换得以快捷地进行.常见的B

Gson对Java嵌套对象和JSON字符串之间的转换

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识,请参考以下内容:http://json.org/json-zh.html 在服务器和客户端之间使用JSON数据格式进行通信,经常会涉及到JAVA对象和JSON字符串之间的转换.通常,我们可以使用一些JSON解析工具,例如:Gson,FastJson等.当然,我们也可以手动解析,只是会比较繁琐. 下面

c语言-c中不同类型指针之间的转换

问题描述 c中不同类型指针之间的转换 不同类型的指针为什么可以装换,例如: void * a; char c=a; a=(void * ) &c; 指针不就是一个地址在里面么,有什么好转换的? 解决方案 指针的本质是都一样的,转换类型是让编译器知道怎么看所指向的内容. 解决方案二: 只有转换了才能通过编译 不同的指针 ++ --等结果也不同 sizeof也不同 解决方案三: 不同类型之间的转换C 不同类型指针的相互转化不同数字类型之间的转换---------------------- 解决方案四

JavaScript中对象与字符串如何互相转换

在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxE

c++ 强制转换-64位linux中long和int之间的转换

问题描述 64位linux中long和int之间的转换 强制转换不是不可以,只是我在Makefile中加了编译选项,是不允许强制转换的 现在唯一想到的办法就是用位运算 我大概是这样写的 long s = 123; int i = 0xffffffff ; int j = i & s; //这里的s得看机器的大端法还是小端法,必要的时候需要移位 但这样写还是不行 int j = i & s; 还是有问题,因为不允许强制转换... - -! 请问有人能告诉我该怎么办么..(能否将long的前/

sql server-在SQL Server 中数字与字符串的排序问题

问题描述 在SQL Server 中数字与字符串的排序问题 原始数据是 567891011No data 数据是varchar类型希望能排列成No data567891011不能改变原始数据,也就是不可以补零select distinct column1,column2 from table order by column2以上数据是在column2 中, 希望各位大神能有好的办法 解决方案 http://blog.sina.com.cn/s/blog_95fa28e60101ry8r.html

JS中对象与字符串的互相转换详解_javascript技巧

在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常. 即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxE