timeConversion

Requirements:

    给定以AM/PM结尾的12小时制的时间,将其转换为24小时制。

    PS:12:00:00AM 转换为00:00:00,其他的AM结尾的将AM扔掉,以PM结尾的若小时不等于12,则将其加上12后再输出


SourceCode:

#include<iostream>
#include<string>
#include<sstream>
using namespace std;


string timeConversion(string s)
{
	//获取小时数
	string tmptime(s);
	int h_time = 0;
	tmptime.replace(2, s.length(), "");
	stringstream stream(tmptime);
	stream >> h_time;


	//处理以AM结尾
	if (s.find("AM") != string::npos)
	{
		s.replace(s.length() - 2, 2, "");
		if (h_time == 12)
			s.replace(0, 2, "00");
	}


	//处理以PM结尾
	if (s.find("PM") != string::npos)
	{
		s.replace(s.length() - 2, 2, "");
		if (h_time != 12)
			h_time += 12;
		stringstream intstream;
		intstream << h_time;
		intstream >> tmptime;
		s.replace(0, 2, tmptime);
	}
	return s;
}
void main()
{
	string s;
	cin >> s;
	cout << timeConversion(s) << endl;
	system("pause");
}


PS:

以“”替换字符串的部分,也可以用erase()代替,erase()函数原型为:

string& erase ( size_t pos = 0, size_t n = npos );
iterator erase ( iterator position );
iterator erase ( iterator first, iterator last );

该problem中还涉及到字符串与数之间的转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值