题目描述
一些坑点
1.第一个相同值为A-G之间,不能超出
2.第二个相同值为字母时,大写字母
A
到N
之间,不能超出3.数字0-9时,前面需要加个'0'
4.!!!最坑的地方来了。第三行和第四行字符串找相同值,存在多处相同值,找到第一处相同值时,需要break,否则输出多次。(血泪史)
最后附上代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
using namespace std;
int main(){
string a,b,c,d;
int i,j;
string week[7]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
cin>>a>>b>>c>>d;
int num,flag=0;
if(a.length()>b.length()){
num=b.length();
}
else{
num=a.length();
}
for(i=0;i<num;i++){
if(a[i]==b[i]&&isupper(a[i])&&flag==0&&a[i]<='G'){
flag++;
j=a[i]-'A';
cout<<week[j]<<" ";
}
else if(flag==1&&a[i]==b[i]){
if(isdigit(a[i])){
cout<<"0"<<a[i]<<":";
break;
}
else if(isupper(a[i])&&a[i]<='N'){
num=a[i]-'A'+10;
cout<<num<<":";
break;
}
}
}
if(c.length()>d.length()){
num=d.length();
}
else{
num=c.length();
}
for(i=0;i<num;i++){
if(c[i]==d[i]&&isalpha(c[i])){
if(i<10){
cout<<"0"<<i<<endl;
break;
}
else{
cout<<i<<endl;
break;
}
}
}
return 0;
}