题解:P11387 [COCI 2024/2025 #1] 身份证 / Osobna
简单模拟题。
运用知识:字符串。
按照题意模拟。注意名字首字母大写,其他小写。字符串首位从零开始。
除了名和姓长度位置不确定,其他都是固定的。
字符串中间没有空格,用 cin 即可。(如果有空格可以用 getline)
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2,s3;
cin>>s1>>s2>>s3;
bool b=1,b1=1;
cout<<"Ime: ";
for(int i=0;i<30;i++){
if(s3[i]!='<' && b1){
cout<<s3[i];
b1=0;
}
else if(s3[i]!='<' && !b1){
cout<<char(s3[i]-'A'+'a');
}
else if(b){
cout<<"\nPrezime: ";
b=0;
b1=1;
i++;
}
else{
cout<<"\n";
break;
}
}
cout<<"Datum rodjenja: "<<s2[4]<<s2[5]<<"-"<<s2[2]<<s2[3]<<"-";
if(s2[0]>'2'){
cout<<"19"<<s2[0]<<s2[1]<<"\n";
}
else if(s2[0]=='2' && s2[1]>'4'){
cout<<"19"<<s2[0]<<s2[1]<<"\n";
}
else{
cout<<"20"<<s2[0]<<s2[1]<<"\n";
}
cout<<"OIB: "<<s1[15]<<s1[16]<<s1[17]<<s1[18]<<s1[19]<<s1[20]<<s1[21]<<s1[22]<<s1[23]<<s1[24]<<s1[25];
}