noi寒假刷题之旅_1.7编程基础之字符串(35题)
»(35题)
01:统计数字字符个数
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a;
getline(cin,a);
int count=0;
for(int i=0;i<a.length();++i)
{
if('0'<=a[i]&&a[i]<='9')count++;
}
cout<<count;
return 0;
}
02:第⼀个只出现⼀次的字符
#include<iostream>
#include<string>
using namespace std;
int num[26]={};
int main()
{
string a;
cin>>a;
int flag=1;
int c=a.length();
for(int i=0;i<c;++i)
{
num[a[i]-'a']++;
}
for(int j=0;j<c;++j)
{
if(num[a[j]-'a']==1)
{
flag=0;
printf("%c",a[j]);
break;
}
}
if(flag)
{
cout<<"no";
}
return 0;
}
03:基因相关性
#include<iostream>
#include<string>
using namespace std;
int num[26]={};
int main()
{
double flag;cin>>flag;
string one;cin>>one;
string two;cin>>two;
int len=one.length();
double same=0;
for(int i=0;i<len;++i)
{
if(one[i]==two[i])same++;
}
if((same/len)<flag)
{
cout<<"no";
}
else
{
cout<<"yes";
}
return 0;
}
04:⽯头剪⼦布
#include<iostream>
#include<string>
using namespace std;
int num[26]={};
int Result(string one,string two)
{
if((one=="Scissors"&&two=="Paper")||(one=="Paper"&&two=="Rock")||(one=="Rock"&&two=="Scissors"))
{
return 1;
}
else if(one==two)
return 0;
}
else
{
return 2;
}
}
int main()
{
int n;cin>>n;
string one;
string two;
for(int i=0;i<n;++i)
{
cin>>one>>two;
int c=Result(one,two);
if(c==1)
{
cout<<"Player1\n";
}
else if(c==2)
{
cout<<"Player2\n";
}
else
{
cout<<"Tie\n";
}
}
return 0;
}
05:输出亲朋字符串
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
getline(cin,s1);
string s2="";
for(int i=0;i<s1.length()-1;++i)
{
int t1=s1[i];
int t2=s1[i+1];
char t3=t1+t2;
s2+=t3;
}
int r=(int)s1[s1.length()-1]+(int)s1[0];
s2+=(char)r;
cout<<s2<<endl;
wa字符串是什么return 0;
}
/*
WA了两发,忘记了有可能输⼊带空格这种条件
*/
06:合法 C 标识符
#include<iostream>
#include<string>
using namespace std;
bool One(string a)
{
string table[]={ "auto","break","case","char", "const","continue","default","do", "double","else","enum","extern", "float","for","goto","if", "int","long","return","short", "signed","sizeof","static","struct", "switch","typedef","union","unsigned", "void","volatile","while" };
for(int i=0;i<31;++i)
{
if(table[i]==a)
{
return false;
}
}
return true;
}
bool Two(string a)
{
for(int i=0;i<a.length();++i)
{
if(('0'<=a[i]&&a[i]<='9')||('a'<=a[i]&&a[i]<='z')||('A'<=a[i]&&a[i]<='Z')||(a[i]=='_'))  {
;
}
}
}
return true;
}
bool Three(string a)
{
if('0'<=a[0]&&a[0]<='9')
{
return false;
}
else
{
return true;
}
}
int main()
{
string c;
getline(cin,c);
if(One(c)&&Two(c)&&Three(c)) {
cout<<"yes";
}
else
{
cout<<"no";
}
return 0;
}
07:配对碱基链
#include<iostream>
#include<string>
using namespace std;
int main()
{
string c;
string d="";
getline(cin,c);
for(int i=0;i<c.length();++i)
{
switch(c[i])
{
case 'A':d+='T';break;
case 'T':d+='A';break;
case 'G':d+='C';break;
case 'C':d+='G';break;
}
}
cout<<d;
return 0;
}
08:字符替换
#include<iostream>
#include<string>
using namespace std;
int main()
{
string c;cin>>c;
string d="";
char ty;cin>>ty;
char th;cin>>th;
for(int i=0;i<c.length();++i)
{
if(c[i]==ty)c[i]=th;
}
cout<<c;
return 0;
}
09:密码翻译
#include<iostream>
#include<string>
using namespace std;
int main()
{
string c;
getline(cin,c);
for(int i=0;i<c.length();++i)
{
if('a'<=c[i]&&c[i]<='z')
{
c[i]=(c[i]+1-'a')%26+'a';
}
if('A'<=c[i]&&c[i]<='Z')
{
c[i]=(c[i]+1-'A')%26+'A';
return 0;
}
10:简单密码
#include<iostream>
#include<string>
using namespace std;
int main()
{
string c;
getline(cin,c);
char t2[26]={'V', 'W', 'X', 'Y', 'Z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U'}; for(int i=0;i<c.length();++i)
{
if('A'<=c[i]&&c[i]<='Z')
{
c[i]=t2[c[i]-'A'];
}
}
cout<<c;
return 0;
}
11:潜伏者
#include<iostream>
#include<string>
using namespace std;
char t[26];
int s[26];
int main()
{
string c="";
string bc="";
string r="";
int flag=0;
getline(cin,c);
getline(cin,bc);
getline(cin,r);
for(int i=0;i<bc.length();++i)
{
s[bc[i]-'A']++;
if(t[c[i]-'A']&&t[c[i]-'A']!=bc[i])
{
flag=1;
break;
}
t[c[i]-'A']=bc[i];
}
for(int i=0;i<26;++i)
{
if(s[i]==0)
{
flag=1;
}
}
if(flag)
{
cout<<"Failed";
return 0;
}
for(int i=0;i<r.length();++i)
{
r[i]=t[r[i]-'A'];
}
cout<<r;
return 0;
}
12:加密的病历单
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string c="";
int flag=0;
getline(cin,c);
for(int i=0;i<c.length();++i)
{
if('a'<=c[i]&&c[i]<='z')
{
c[i]=(c[i]-'a'+3+26)%26+'A';
}
else if('A'<=c[i]&&c[i]<='Z')
{
c[i]=(c[i]-'A'+3+26)%26+'a';
}
}
reverse(c.begin(),c.end());
cout<<c;
return 0;
}
13:将字符串中的⼩写字母转换成⼤写字母#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string c="";
getline(cin,c);
for(int i=0;i<c.length();++i)
{
if('a'<=c[i]&&c[i]<='z')
{
c[i]=(c[i]-'a'+26)%26+'A';
}
}
cout<<c;
return 0;
}
14:⼤⼩写字母互换
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string c="";
getline(cin,c);
for(int i=0;i<c.length();++i)
{
if('a'<=c[i]&&c[i]<='z')
{
c[i]=(c[i]-'a'+26)%26+'A';
}
else if('A'<=c[i]&&c[i]<='Z')
{
c[i]=(c[i]-'A'+26)%26+'a';
}
}
cout<<c;
return 0;
}
15:整理药名
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
string c;
for(int i=0;i<n;++i)
{
cin>>c;
if('a'<=c[0]&&c[0]<='z')
{
c[0]=(c[0]-'a'+26)%26+'A';
}
for(int j=1;j<c.length();++j)
{
if('A'<=c[j]&&c[j]<='Z')
{
c[j]=(c[j]-'A'+26)%26+'a';
}
}
cout<<c<<endl;
}
return 0;
}
16:忽略⼤⼩写的字符串⽐较
#include<iostream>
#include<string>
#include<string.h>
#include<stdio.h>
#include<algorithm>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。