64,648
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
#include<vector>
#include<istream>
#include<sstream>
#include<stdlib.h>
using namespace std;
//字符串分割函数
vector<string> split(std::string str,std::string pattern)
{
std::string::size_type pos;
std::vector<std::string> result;
str+=pattern;//扩展字符串以方便操作
int size=str.size();
for(int i=0; i<size; i++)
{
pos=str.find(pattern,i);
if(pos<size)
{
std::string s=str.substr(i,pos-i);
result.push_back(s);
i=pos+pattern.size()-1;
}
}
return result;
}
int main(){
int maxlen=30;
int T;
string A[maxlen];
for(int i=0;i<maxlen;i++){
getline(cin,A[i]);
if(A[i].at(0)=='#'){
break;
}
}
cin>>T;
for(int i=1;i<maxlen;i=i+3){
if(A[i].at(0)=='#'){
break;
}
char c1=':';
string str1;
stringstream stream1;
stream1<<c1;
str1=stream1.str();
vector <string> result=split(A[i],str1);
/*int HH1=atoi(result[0]);
int MM1=result[1];
int MM2=result[3];*/
int HH1,MM1,SS1,TT1,HH2,MM2,SS2,TT2=0;
int HH1_,MM1_,SS1_,TT1_,HH2_,MM2_,SS2_,TT2_;
for(int i=0;i<result[0].length();++i){
HH1=HH1*10+result[0][i]-'0';
}
for(int i=0;i<result[1].length();++i){
MM1=MM1*10+result[1][i]-'0';
}
for(int i=0;i<result[3].length();++i){
MM2=MM2*10+result[3][i]-'0';
}
char c2='-';
string str2;
stringstream stream2;
stream2<<c2;
str2=stream2.str();
vector <string> result_=split(result[2],str2);
char c3=',';
string str3;
stringstream stream3;
stream3<<c3;
str3=stream3.str();
vector <string> result__=split(result_[0],str3);
for(int i=0;i<result__[0].length();++i){
SS1=SS1*10+result__[0][i]-'0';
}
for(int i=0;i<result__[1].length();++i){
TT1=TT1*10+result__[1][i]-'0';
}
char c4='>';
string str4;
stringstream stream4;
stream4<<c4;
str4=stream4.str();
vector <string> result2=split(result_[1],str4);
for(int i=0;i<result2[0].length();++i){
HH2=HH2*10+result2[0][i]-'0';
}
vector <string> result1=split(result[4],str3);
for(int i=0;i<result1[0].length();++i){
SS2=SS2*10+result1[0][i]-'0';
}
for(int i=0;i<result1[1].length();++i){
TT2=TT2*10+result1[1][i]-'0';
}
int m=TT1+T;
if(m>1000){
TT1_=m-1000;
int m1=SS1+m/1000;
if(m1>60){
SS1_=m1-60;
int m2=MM1+m1/60;
if(m2>60){
MM1_=m2-60;
HH1_=HH1+m2/60;
}
}
}
else if(m<=1000){
TT1_=m;
SS1_=SS1;
MM1_=MM1;
HH1_=HH1;
}
int n=TT2+T;
if(n>1000){
TT2_=n-1000;
int n1=SS2+n/1000;
if(n1>60){
SS2_=n1-60;
int n2=MM2+n1/60;
if(n2>60){
MM2_=n2-60;
HH2_=HH2+n2/60;
}
}
}
else if(n<=1000){
TT2_=n;
SS2_=SS2;
MM2_=MM2;
HH2_=HH2;
}
A[i]='HH1_:MM1_:SS1_,TT1_-->HH2_:MM2_:SS2_,TT2_';
}
for(int i=0;i<maxlen;i++){
cout<<A[i]<<endl;
if(A[i].at(0)=='#'){
break;
}
}
return 0;
}