PTA乙级 (1052 卖个萌 (20分),(substr函数))
一、C++中substr函数用法
#include<string> #include<iostream> using namespace std; int main() { string s("12345asdf"); string a = s.substr(0,5); //获得字符串s中从第0位开始的长度为5的字符串 cout << a << endl; }
//输出结果为:12345
二、1052 卖个萌 (20分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104
#include <cstdio> #include <cstring> #include <string> #include <iostream> #include <cmath> #include <algorithm> using namespace std; vector<string> v1,v2,v3; string str1,str2,str3; void init(vector<string> &v,string s) { int k=0,start; for(int i=0;i<s.length();i++) { if(s[i]=='[') { start=i+1; k=0; } else if(s[i]==']') { v.push_back(s.substr(start,k)); } else k++; } } int main() { string s; s.clear(); getline(cin,s); init(v1,s); s.clear(); getline(cin,s); init(v2,s); s.clear(); getline(cin,s); init(v3,s); s.clear(); int arr[10]={0},k; int len1=v1.size(),len2=v2.size(),len3=v3.size(); bool flag=true; cin>>k; for(int i=0;i<k;i++) { for(int j=0;j<5;j++)
{ cin>>arr[j]; if(arr[j]<1) flag=false; } if(arr[0]>len1||arr[1]>len2||arr[2]>len3||arr[3]>len2||arr[4]>len1) flag=false; if(!flag) cout<<"Are you kidding me? @\\/@"<<endl; else cout<<v1[arr[0]-1]<<"("<<v2[arr[1]-1]<<v3[arr[2]-1]<<v2[arr[3]-1]<<")"<<v1[arr[4]-1]<<endl; } return 0; }
天晴了,起飞吧