1.输入一组字符串,判断是否有重复字符,并输出有几组重复字符
分析:
两个循环,第二个循环从第二个字符开始,如果有相同的字符,我们就赋给b,但是我们必须要去重操作,因为b里面可能会有相同的字符,所以我们使用set容器来存储(不能有相同的键值),最后它的长度就是重复字符的组数
#include<iostream>
#include<string>
#include<set>
using namespace std;
int main(){
string a;
cin>>a;
int t=0,counts=0;
set<char> b;
for(int i=0;a[i]!='\0';i++){
for(int j=1;j<i;j++){
if(a[i]==a[j])
{
t=1;
b.insert(a[i]);
}
}
}
if(t==1)
cout<<"重复" <<endl;
else
cout<<"不重复"<<endl;
cout<<"重复字符组数:"<<b.size();
return 0;
}
2.输入一个字符串,如:I love you,将其反转为:I evol uoy
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
string a,b;
getline(cin,a);//可以接收空格,如果直接cin来接收,空格之后的字符将不接收给a
cout<<a<<endl;
int pos=0;
while(pos<a.size()){
pos=a.find(" ");//找到空格的地址并返回
string b=a.substr(0,pos);//提取空格前的字符
reverse(b.begin(),b.end());//将字符串反转
cout<<b<<" ";
a=a.substr(pos+1);//重置字符a
}
return 0;
}