字符串习题
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串习题相关的知识,希望对你有一定的参考价值。
目录
760. 字符串长度
#include<cstdio>
#include<iostream>
using namespace std;
int main(void)
{
char c; int k=0;
while(scanf("%c",&c)!=EOF) ++k;
printf("%d",k-1);//结束的多余的回车减掉
}
761. 字符串中的数字个数
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s;
getline(cin,s);
int k=0;
for(int i=0;i<s.size();i++) if(isdigit(s[i])) k++;
cout<<k<<endl;
return 0;
}
762. 字符串匹配
#include<cstdio>
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(void)
{
double n,k; cin>>n;
string s1,s2; cin>>s1>>s2;
for(int i=0;i<s1.size();i++) if(s1[i]==s2[i]) k+=1;
if(k/s1.size()>=n) printf("yes\\n");
else printf("no\\n");
return 0;
}
763. 循环相克令
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
string s1,s2; cin>>s1>>s2;
bool flag=false;
if(s1==s2) printf("Tie\\n"),flag=true;
if( (s1=="Hunter"&&s2=="Gun") || (s1=="Gun"&&s2=="Bear") || (s1=="Bear"&&s2=="Hunter"))
printf("Player1\\n"),flag=true;
if(!flag) printf("Player2\\n");
}
return 0;
}
764. 输出字符串
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s,ans; getline(cin,s);
for(int i=1;i<s.size();i++) ans+=s[i]+s[i-1];
ans+=s[s.size()-1]+s[0];
cout<<ans<<endl;
return 0;
}
765. 字符串加空格
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s,ans; getline(cin,s);
for(int i=0;i<s.size();i++) ans+=s[i],ans+=' ';
cout<<ans<<endl;
return 0;
}
766. 去掉多余的空格
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s;
while(cin>>s) cout<<s<<" ";
return 0;
}
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s; getline(cin,s);
int i=0;
while(i!=s.size())
{
if(s[i]!=' ') cout<<s[i],i++;
else
{
while(s[i]==' '&&i<s.size()) i++;
cout<<" ";
}
}
return 0;
}
767. 信息加密
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s; getline(cin,s);
for(int i=0;i<s.size();i++)
{
if(isalpha(s[i])){
if(s[i]=='z'||s[i]=='Z') printf("%c",s[i]-25);
else printf("%c",s[i]+1);
}
else cout<<s[i];
}
return 0;
}
768. 忽略大小写比较字符串大小
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(void)
{
string a,b;
getline(cin,a);
getline(cin,b);
for(int i=0;i<a.size();i++) a[i]=toupper(a[i]);
for(int i=0;i<b.size();i++) b[i]=toupper(b[i]);
if(a>b) printf(">\\n");
else if(a==b) printf("=\\n");
else printf("<\\n");
}
769. 替换字符
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s; getline(cin,s);
char c; cin>>c;
for(int i=0;i<s.size();i++)
{
if(s[i]==c) cout<<'#';
else cout<<s[i];
}
return 0;
}
770. 单词替换
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<string> ve;
int main(void)
{
string s;
while(cin>>s) ve.push_back(s);
for(int i=0;i<ve.size()-2;i++)
{
if(ve[i]==ve[ve.size()-2]) cout<<ve[ve.size()-1];
else cout<<ve[i];
cout<<" ";
}
return 0;
}
771. 字符串中最长的连续出现的字符
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
string s; cin>>s;
char c;
int ans=0;
for(int i=0;i<s.size();i++)
{
int n=1;
while((i+1)<s.size()&&s[i]==s[i+1]) i++,n++;
if(n>ans) ans=n,c=s[i];
}
cout<<c<<" "<<ans<<endl;
}
return 0;
}
772. 只出现一次的字符
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a[28];
int main(void)
{
char s[100005]; cin>>s;
for(int i=0;i<strlen(s);i++) a[s[i]-'a']++;
bool flag=false;
for(int i=0;i<strlen(s);i++)
{
if(a[s[i]-'a']==1)
{
cout<<s[i];
flag=true;
break;
}
}
if(!flag) cout<<"no"<<endl;
return 0;
}
773. 字符串插入
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string a,b;
while(cin>>a>>b)
{
bool flag=false;
char temp=' ';
for(int i=0;i<a.size();i++) if(a[i]>temp) temp=a[i];
for(int i=0;i<a.size();i++)
{
cout<<a[i];
if(a[i]==temp&&!flag) cout<<b,flag=true;
}
cout<<endl;
}
}
774. 最长单词
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
int main(void)
{
vector<string> ve;
string s;
while(cin>>s) ve.push_back(s);
string ans="";
ve[ve.size()-1]=ve[ve.size()-1].substr(0,ve[ve.size()-1].size()-1);
for(int i=0;i<ve.size();i++)
{
int t=ve[i].size();
if(t>ans.size()) ans=ve[i];
}
cout<<ans<<endl;
return 0;
}
775. 倒排单词
笨办法学 Python(第三版)习题 6: 字符串(string)和文本