你好家伙我面临一个问题,因为我不能想出一个方法,它将一个字符串(它实际上是这种形式日期/月/年)作为参数和在矢量或数组中标记它。有人可以帮忙吗?我知道有很多关于这方面的话题,但是我找不到任何不包括boost的解决方案(我不想使用它)。带分隔符的标记字符串“/”
-3
A
回答
6
如果要分析日期,明显的起点是std::get_time
:
struct tm t;
std::cin >> std::get_time(&t, "%d/%m/%Y");
这使结果为struct tm
,而不是一个向量。通过这种方式,您可以访问月份的某一天(例如)t.tm_mday
,而不是试图记住x[1]
是一天,而x[2]
是一年(或其他)。
您还可以得到一个公平的数字,知道如何在这个格式操作日期/时间等程序,与mktime
一起,可将其转换为time_t
(提供了其中不少更实用例程)的。
1
给你。
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main()
{
std::string s("2016/8/2");
std::istringstream is(s);
std::vector<std::string> v;
v.reserve(3);
for (std::string s; std::getline(is, s, '/');)
v.push_back(s);
for (const auto & s : v)
std::cout << s << ' ';
std::cout << std::endl;
return 0;
}
程序输出是
2016 8 2
+0
@GerasimosRagavanis我使用了反向输入字符串。:) –
1
试试这个:
string parsed,input="03/12/2016";
stringstream input_stringstream(input);
vector<string> date;
if(getline(input_stringstream,parsed,'/'))
{
date.push_back(parsed);
}
这解析每个日期字符,由/
分隔,并把它变成一个载体
相关问题
- 1. 分隔带分隔符的字符串
- 2. 字符串标记,分隔符
- 3. Java字符串标记器分隔符
- 4. 带分隔符的C#子字符串
- 5. java带分隔符的字符串
- 6. 带分隔符的Java字符串
- 7. 字符串标记化,按标记分隔而不是分隔符
- 8. 带分隔符PHP单独字符串
- 9. 带分隔符作为字符串的字符串?
- 10. 用分隔符分隔带引号的字符串
- 11. 用于*和/的字符串标记的Java分隔符
- 12. 分割字符串并执行分隔字符串标记的计算C#
- 13. 带有“ - ”的分隔字符串
- 14. 分隔字符串与分隔符
- 15. 用“||”分隔字符串分隔符
- 16. 分隔符分隔字符串RadTreeView VB.NET
- 17. 用分隔符分隔字符串
- 18. 将字符串拆分为不带分隔符的字符串数组C
- 19. 作为字符串标记器中的分隔符的字符集JAVA
- 20. 在多个分隔符上标记字符串
- 21. 字符串标记分隔符改变,没有表现出来
- 22. 在嵌套分隔符之间标记字符串
- 23. python3字符串分隔符
- 24. 字符串分隔符
- 25. VBA字符串分隔符
- 26. 分隔字符串
- 27. 分隔字符串?
- 28. 分隔字符串
- 29. 按字符串分隔多个字符的分隔符
- 30. 不带任何分隔符的Java字符串拆分
为什么你想使用矢量? –
*我不想使用* - 增强有什么问题? – PaulMcKenzie
助推程序可能无法在我的教师计算机中编译:D –