gpt4 book ai didi

c++ - 使用 Boost 将字符串 YYYYMMDD 格式化为 YYYY.MM.DD

转载 作者:行者123 更新时间:2023-11-30 03:04:55 26 4
gpt4 key购买 nike

我有一个 std::string,例如 20040531,我想将其格式化为 2004.05.31

除了在各个位置执行 std::insert 的直接方法之外,是否有更好的方法使用 Boost 来执行此操作?

附言。我无法使用其他 Boost 调用来获取日期/时间,因为此字符串是通过自定义 API 返回的。所以这个问题被简化为基本的字符串格式,这听起来可能并不令人兴奋,但我正在努力学习 Boost。

最佳答案

你可以使用 boost::format ...

#include <string> 
#include "boost/format.hpp"
#include <iostream>

int main()
{
std::string a("20040531");
std::cout << boost::format("%1%.%2%.%3%")
% a.substr(0,4) % a.substr(4,2) % a.substr(6,2);
}

您特别询问了有关使用 Boost 执行此操作的问题,但是如果您想在 C++ 中执行此操作而不引入对 Boost 的依赖性,那么您可以使用流来实现相同的操作:

#include <sstream>
#include <string>
#include <iostream>

int main()
{
std::stringstream s;
std::string a("20040531");
s << a.substr(0,4) << '.' << a.substr(4,2) << '.' << a.substr(6,2);
std::cout << s.str();
}

关于c++ - 使用 Boost 将字符串 YYYYMMDD 格式化为 YYYY.MM.DD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com