c++ 中double与string之间的转换,char *
运行代码为
/*
* main.cpp
*
* Created on: Apr 7, 2016
* Author: lizhen
*/ #include <iostream>
//#include "MySqrt.h"
#include <math.h>
#include <vector>
#include <typeinfo>
#include <exception>
#include <stdexcept>
#include<string.h>
#include<sstream>
#include<stdio.h> using namespace std; class Base{
public:
Base(){
cout<<"create the base"<<endl;
}
virtual ~Base(){
cout<<"destroy the base"<<endl;
}
};
class Derived: public Base{
public:
Derived(){
cout<<"derived is created"<<endl;
}
virtual ~Derived(){
cout<<"Derived is destroying"<<endl;
}
};
//double -->string
string doubleConverToString(double d){
ostringstream os;
if(os << d) return os.str();
return "invalid conversion";
} //string-->double
double stringConverTodouble(string str){
istringstream iss(str); double x;
if(iss >> x) return x;
return 0.0;
} //c-function double-->string
string cfunctionDtoS(double d){
char str[];
sprintf(str,"%.3lf",d);
return str;
}
//c-function string->double
double cfunctionStoD(string str){
double dd;
sscanf(str.c_str(),"%lf",&dd);
return dd;
} int main() {
//string-->char*
string str("string");
char *p = const_cast<char *>(str.c_str());
cout<<"string->char*"<<p<<endl; //char* -->string
char *ch = const_cast<char *>("char");//warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]|
string chstr(ch);
cout<<"char * -->string"<<chstr<<endl; //double&float --->string
double dd = 3.14;
string ddstr = doubleConverToString(dd);
cout<<ddstr<<endl; //string--->double&float
string strp = "3.5555555555";
double strdd = stringConverTodouble(strp);
cout<<strdd<<endl;
cout<<atof(strp.c_str())<<endl; //c-function double->string
string ss = cfunctionDtoS(3.146789);
cout<<"ss"<<ss<<endl; //c-function string->string
double cdd = cfunctionStoD("3.14259");
cout<<cdd<<endl;
}
运行结果
string->char*string
char * -->stringchar
3.14
3.55556
3.55556
ss3.
3.14259
===========================================================
string-->char*
//string-->char*
string str("string");
char *p = const_cast<char *>(str.c_str());
cout<<"string->char*"<<p<<endl;
char*-->string
//char* -->string
char *ch = const_cast<char *>("char");//warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]|
string chstr(ch);
cout<<"char * -->string"<<chstr<<endl;
===
double/float-->string
string-->double/float
利用c++中 sstream头文件中的方法
==利用 ostringstream 输出流对象,将double输出到string中
方法如下:
//double -->string
string doubleConverToString(double d){
ostringstream os;
if(os << d) return os.str();
return "invalid conversion";
}
==利用istringstream输入流对象,将string中的东西放到double变量中去
方法如下
//string-->double
double stringConverTodouble(string str){
istringstream iss(str); double x;
if(iss >> x) return x;
return 0.0;
}
利用标准c中的stdio.h头文件中的方法
==利用sprintf(str,"%.3lf",dd)方法,将double变量中的字符输出到字符串str中
方法如下:
//c-function double-->string
string cfunctionDtoS(double d){
char str[];
sprintf(str,"%.3lf",d);
return str;
}
==利用sscanf(str,"%d",&dd)方法,将字符串str中的东西,放到double变量dd中
方法如下:
//c-function string->double
double cfunctionStoD(string str){
double dd;
sscanf(str.c_str(),"%lf",&dd);
return dd;
}
其他方法
char *itoa(int value, char* string, int radix); int---->string
同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数。
另外也可以使用atoi(),atol(),atof().可以将string--->int/double/float
参考文档:
http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
c++ 中double与string之间的转换,char *的更多相关文章
- java中Integer 和String 之间的转换
java中Integer 和String 之间的转换 将数组转换成字符串:char[] array = {'a','b','c','d','e'};String str = new String(ar ...
- java中int和String之间的转换
String 转为int int i = Integer.parseInt([String]); int i = Integer.valueOf(my_str).intValue(); int转为St ...
- C++中数字与字符串之间的转换 scanf string总结(复习必读)
1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...
- C#中char[]与string之间的转换;byte[]与string之间的转化
目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...
- C++中数字与字符串之间的转换,别人的,
C++中数字与字符串之间的转换 1.字符串数字之间的转换 (1)string --> char * string str("OK"); char * p = st ...
- C++中数字与字符串之间的转换(转)
http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 1.字符串数字之间的转换 (1)string --> char ...
- Java学习--Java 中基本类型和字符串之间的转换
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...
- 如何在Byte[]和String之间进行转换
源自C#与.NET程序员面试宝典. 如何在Byte[]和String之间进行转换? 比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲.它是计算机物理内存保存的最基本单元. 字节(B):8个比特, ...
- Java 中基本类型和字符串之间的转换
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...
随机推荐
- UVA Stacks of Flapjacks 栈排序
题意:给一个整数序列,输出每次反转的位置,输出0代表排序完成.给一个序列1 2 3 4 5,这5就是栈底,1是顶,底到顶的位置是从1~5,每次反转是指从左数第i个位置,将其及其左边所有的数字都反转,假 ...
- StackOverflow之旅<2>------{HashMap和Hashtable的区别}
问题 在Java中HashMap和Hashtable的区别? 哪一个对于多线程应用程序更好? 回答 Hashtable是同步的,加了synchronized锁,而HashMap不是.没有加synchr ...
- js数据结构处理--------扁平化数组处理为树结构数据
将扁平化的数组处理为树结构数据,我们可以利用对象来处理,对象的复制是浅拷贝,指向相同的内存地址: var arr = [ { id: 0, pid: -1, name: 'sadas' }, { id ...
- C++unsigned char和char区别
char和unsigned charchar与unsigned char都是一个字节8bit,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char( ...
- js字符串的使用
Javascript的内置功能之一就是字符串连接,如果+号用于两个字符串连接 var s="hello,world" //想要查找给定位置的字符 s.cha ...
- [mysql] Can't read from messagefile
系统:windows 重启mysql服务出现 Server] Can't read from messagefile 等错误时候, 应先执行 mysqld --initialize-insecure ...
- mysql 删除 一天前 创建 的数据,计算时间差
DELETE from table_name WHERE TIMESTAMPDIFF(SECOND ,CREATE_TIME,now() ) > 24*60*60 https://www.cnb ...
- Xenia and Bit Operations CodeForces - 339D
Xenia and Bit Operations CodeForces - 339D Xenia the beginner programmer has a sequence a, consistin ...
- 笔记-网络-抓包-wireshark
笔记-网络-抓包-wireshark 1. 开始 环境:win8笔记本,无线网 1.1. 无线网卡设置 因为需抓捕无线网卡上的数据包,需要进行一项设置,如捕获有线网卡,无需设置. 打开 ...
- 笔记-http-header
笔记-http-header 1. Requests部分 Host:请求的web服务器域名地址 User-Agent:HTTP客户端运行的浏览器类型的详细信息.通过该头部信息,web服务器可 ...