C ++子字符串返回错误的结果 [英] C++ substring returning wrong results

查看:139
本文介绍了C ++子字符串返回错误的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个字符串:

std::string date = "20121020";

我在做:

std::cout << "** Date: " << date << "\n";
std::cout << "Year: " << date.substr(0,4) << "\n";
std::cout << "Month: " << date.substr(4,6) << "\n";
std::cout << "Day: " << date.substr(6,8) << "\n";

但是获取:

** Date: 20121020
Year: 2012
Month: 1020
Day: 20

请注意,月份应为 10 ,而不是 1020 。位置是正确的,尝试一切,那就是它失败了?

Notice that month should be 10, not 1020. Positions are correct, tried everything, that is it failing?

推荐答案

std::cout << "Month: " << date.substr(4,6) << "\n";

第二个参数错误。

您可能需要:

std::cout << "Month: " << date.substr(4,2) << "\n";

这篇关于C ++子字符串返回错误的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆