C语言下double转char*或者std::string,可以精确转换不含多余的0

char* GetDoubleStr(double value)
{
	char buf[32]={0};//长度可以自定义
	sprintf(buf,"%.8f",value);//保留8位小数,不够补0
	int index = 0;
	int len = strlen(buf);
	for(int i = len-1;i>0;i--)
	{
		if(buf[i] == ‘0‘)
			continue;
		else
		{
			if(buf[i] == ‘.‘) index = i;
			else index = i+1;
			break;
		}
	}
	buf[index] = ‘\0‘;
	return buf;
}

  

时间: 2024-10-27 11:45:06

C语言下double转char*或者std::string,可以精确转换不含多余的0的相关文章

实战c++中的string系列--std:vector<char> 和std:string相互转换(vector to stringstream)

有时候也会遇到std:vector与转std:string 相互转换的情况. 首先看一下vector<char>如何转string: std::vector<char> *data = response->getResponseData(); std::string res; //方法一 for (int i = 0;i<data->size();++i) { res+=(*data)[i]; } res+='\0'; std:cout << res;

no matching function for call to ‘std::basic_string&lt;char&gt;::assign(std::string&amp;, int)

使用string中的assign赋值函数报错,代码为: text0.assign(line,i+1); 其中text0与line都为string类型 最后发现assign函数的原型为 string &assign(const char *s,int n); 将代码改为以下即可 text0.assign(line.c_str(),i+1); 附  assign函数 string &operator=(const string &s);//把字符串s赋给当前字符串 string &am

D语言调用C++中的std::string

在D语言中调用C++中的std::string , 需要使用 extern(C++,class)语法,该语法在DMD2.071版本中不支持,需要使用ldc1.1. 下载地址:https://github.com/ldc-developers/ldc/releases/ . 下载ldc2-1.1.0-alpha1-win32-msvc.zip 使用LDC2-1.1时,必须使用vs2015库文件,因为连接时需要. 下面使用visuald来测试一下调用std::string. 解压开LDC放在以下目录

QString, Std::string, char *相互转换

Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利. 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) 类型,因此在Qt框架下需要将QString转换成标准字符 (串) 类型.下面介绍QString, Std::string, char *相互转换转换方法. std::string和char *的相互转换 1.  将char *或char[]转换为std::string 可直接赋值 std::stri

C++ std::unordered_map使用std::string和char *作key对比

最近在给自己的服务器框架加上统计信息,其中一项就是统计创建的对象数,以及当前还存在的对象数,那么自然以对象名字作key.但写着写着,忽然纠结是用std::string还是const char *作key,哪个效率高些.由于这服务器框架业务逻辑全在lua脚本,在C++需要统计的对象没几个,其实用哪个没多大区别.我纠结的是,很久之前就知道这两者效率区别不大,但直到现在我都还没搞清楚为啥,于是写些代码来测试. V1版本的代码如下: #ifndef __MAP_H__ #define __MAP_H__

类 this指针 const成员函数 std::string isbn() const {return bookNo;}

转载:http://www.cnblogs.com/little-sjq/p/9fed5450f45316cf35f4b1c17f2f6361.html C++ Primer 第07章 类 7.1.2 ?Sales_data类的定义如下: #ifndef SALES_DATA_H #define SALES_DATA_H #include <string> #include <iostream> class Sales_data { public: std::string isbn

CString 与 std::string 相互转化

MFC中CString 与 std::string 相互转化 CString实际是CStringT, 也就是模板类, 在UNICODE环境下,实际是CStringW, 在多字符集环境下,实际是CStringA std::string就是多字符集的. UNICODE环境下 CStringW-->std::string CString实际是CStringW,要转换成多字符集,需进行转码.使用WideCharToMultiByte 转换成多字符集,然后再构造std::string std::strin

std::string类详解

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 标准模板库(STL)提供了一个std::string类,其是std::basic_string的一个特化,它是一个容器类,可把字符串当作普通类型来使用,并支持比

c++ istream转换为std::string

std::istreambuf_iterator<char> eos; std::string s(std::istreambuf_iterator<char>(stream), eos);---------------------------------------------------------------------------- (could be a one-liner if not for MVP) post-2011 edit, this approach is