Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何分组数字?_C++_String - Fatal编程技术网

C++ 如何分组数字?

C++ 如何分组数字?,c++,string,C++,String,我需要一个函数,它从双精度值中获取字符串,格式为'xx'xxx'xxx.xxxx' 该功能必须快速工作 如何编写它?要将double转换为字符串,请查看 阿托夫 或 串 一旦有了字符串,就有几个选项可供选择,但所有选项都会找到小数点,并在三人一组后插入“或通过复制原始字符串来构造新字符串,但在复制每组三人后还要添加” 假设您使用的是std::string,类似这样的东西应该可以正常工作: const int GROUP_LENGTH = 3; auto stringLength = s.leng

我需要一个函数,它从双精度值中获取字符串,格式为'xx'xxx'xxx.xxxx'

该功能必须快速工作


如何编写它?

要将double转换为字符串,请查看

阿托夫

一旦有了字符串,就有几个选项可供选择,但所有选项都会找到小数点,并在三人一组后插入“或通过复制原始字符串来构造新字符串,但在复制每组三人后还要添加”

假设您使用的是std::string,类似这样的东西应该可以正常工作:

const int GROUP_LENGTH = 3;
auto stringLength = s.length();
auto insertPosition = s.find(".");
if (insertPosition == string::npos) { // no decimal part
    insertPosition = stringLength;
}
while (insertPosition > 0) {
    insertPosition -= GROUP_LENGTH;
    s.insert(insertPosition, '\'');
}

还有,不要介意知识精英。这些人中的许多人天生就做倒立。

如果所需格式是某个特定区域设置的一部分,那么您可以设置该区域设置并使用流提取。否则,您将不得不使用自己的函数。“我需要一个函数…”您认为StackOverflow.com是关于什么的?如果格式“xx'xxx'xxx.xxxx”表示值12345678.0123表示为12'345'678.0123,请删除所有“”,然后使用内置函数“stod()”。在许多情况下,内置函数具有良好的性能。谢谢。我理解你写的一切。但是这个算法会运行得很快吗?在这种情况下,为什么快速对你如此重要?一般的规则是先写后优化。首先,大多数事情都非常快,特别是在现代计算机上,因此过早地优化是一种浪费。不要只停留在“一切尽可能快”的心态中。当我的应用程序中的数据更新时,会多次调用此函数。在所有情况下,最好的方法是为运行时计算执行时间,将该时间与规格/需求进行比较,只有~then~如果不可接受,然后再进行优化。但是提前恐惧是没有用的,永远不要猜测它是否是最优的——总是给它计时。你不能总是通过外表来判断事物的运行速度。@Ufx:专业工程师不是猜测而是测量。执行速度有很多因素,“快”和“慢”是非常主观的属性。问这个算法是否“快”和问“这列火车快吗?”一样毫无意义。此外,我认为你对这件事的期望是错误的。这里的人不提供有偿服务;你必须积极合作,自己尝试。