C++字符串类型和数字之间的转换
转载:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
1、字符串数字之间的转换
字符串---字符数组
(1)string --> char *
   string str("OK");
   char * p = str.c_str();
字符数组---字符串
(2)char * -->string
   char *p = "OK";
   string str(p);
字符数组---CString
(3)char * -->CString 
   char *p ="OK";
   CString m_Str(p);
   //或者
   CString m_Str;
   m_Str.Format("%s",p);
CString---字符数组
(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()函数
字串格式化命令,主要功能是把格式化的数据写入某个字符串中。
函数原型
int sprintf( char *buffer, const char *format, [ argument] … );
参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
返回值
字符串长度(strlen)
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
C++字符串类型和数字之间的转换的更多相关文章
- kotlin字符串和数字之间的转换和人机交互
		继续基础学习~ 字符串和数字之间的转换 那如何转换呢,其实很简单: 编译木有报错,但是运行: 所以这里了解下. 人机交互 看这标题貌似高端的,其实也就是程序可以接受键盘的输入啦,下面开始: 首先提示用 ... 
- python学习笔记(3) -- 字符与数字之间的转换函数
		转载:python中的字符数字之间的转换函数 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 ... 
- JSON字符串和JS对象之间的转换
		JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象 JSON字符串 str JSON.parse(str) eval(str) eva ... 
- C# 16进制与字符串、字节数组之间的转换(转)
		1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ... 
- java中,字符串类型的时间数据怎样转换成date类型。
		将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ... 
- C# 16进制与字符串、字节数组之间的转换 (转载)
		1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ... 
- C#串口通讯,16进制与字符串、字节数组之间的转换。
		1.将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, ... 
- C# 16进制与字符串、字节数组之间的转换
		1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToStrin ... 
- C# 16进制与字符串、字节数组之间的转换(串口通讯中)
		1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ... 
随机推荐
- 怎么使用 ab.exe 测试多个url。 how to use ab.exe test many url
			from a commandline in windows: for /F %q in (list.txt) DO ab -n 1000 https://test.com/search?%q I ... 
- Java 小数类 及四舍五入的方法  精度非常高的小数时用
			注意假设结果是无限位小数,不指定位数进行四舍五入的话会报错 import java.util.Scanner; import java.math.BigDecimal; public class Ma ... 
- python搭建简易服务器实例参考
			有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ... 
- angular学习笔记(四)- input元素的ng-model属性
			input元素的ng-model属性: 用于将input的值和变量的值进行双向绑定 <!DOCTYPE html> <html ng-app> <head> < ... 
- Cocos-2d 坐标系
			Cocos-2d中,涉及到4种坐标系: GL坐标系:Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系.GL坐标系原点在屏幕左下角,x轴向右,y轴向上. getLocation ... 
- Spark Streaming使用Kafka保证数据零丢失
			来自: https://community.qingcloud.com/topic/344/spark-streaming使用kafka保证数据零丢失 spark streaming从1.2开始提供了 ... 
- Python2 获取两日期之间的每一天
			import datetime def getEveryDay(begin_date,end_date): date_list = [] begin_date = datetime.datetime. ... 
- 纯css3实现的文字亮光特效
			今天给大家分享一款纯css3实现的文字亮光特效.这款特效文字上一道亮光逐渐扫过文字.效果非常漂亮.一起看下效果: 在线预览 源码下载 实现的代码. html代码: <span class=& ... 
- C++14尝鲜:Generic Lambdas(泛型lambda)
			所谓泛型lambda.就是在形參声明中使用auto类型指示说明符的lambda. 比方 auto lambda = [](auto x, auto y) {return x + y;}; 依据C++1 ... 
- 【Unity笔记】获得鼠标点击屏幕的位置,并转成世界坐标
			Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 
