字符串处理:

字符串处理:
1.字符串的输入
a.cin.getline(字符型数组名称,输入的位数,截止标志);

#include<iostream>
using namespace std;
char q[11100];
int main(){
cin.getline(q,10,'a');//对q进行输入到a截止且最多输入10位;
for(int i=0;i<11100;i++){
	cout<<q[i];
}
return 0;
}

结果:
在这里插入图片描述
b.getline(cin,字符串名称)//遇见换行键终止输入;

#include<iostream>
#include<cstring>
using namespace std;
string a;
int main(){
getline(cin,a);//对字符串进行赋值。
cout<<a;
return 0;
}

c.cin//遇见空格即停止输入;用于做遇空格输入停止的题;

#include<iostream>
#include<cstring>
using namespace std;
string a;
int main(){
cin>>a;
cout<<a;
return 0;
}

结果:
在这里插入图片描述
d.gets()也用于c++;
2.常用函数:
a.查找:find()函数;
例:
int a=s1.find(q);//在字符串s1中顺序查找q并返回q的首地址给a;
int a=s1.rfind(q);//在字符串s1中倒叙查找q并返回q的地址给a;
int a=s1.find(q,1);//在字符串s1的第一个字符后顺序查找q并返回q的首地址给a;
b.输出处理:substr()函数;
例:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    cin>>str;

    cout<<str.substr(3)<<endl; //从第三个位置开始输出字符;
    cout<<str.substr(2,4)<<endl;//从第二个开始输出四个字符;
    return 0;
}

例:
结果:
在这里插入图片描述
c.插入:insert()函数

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string a;
    cin>>a;

    cout<<a.insert(6,"henu")<<endl;//从第6个位置后插入“henu” 
    return 0;
}

结果:
在这里插入图片描述
d.追加:a.append(“henu”);

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string a;
    cin>>a;

    cout<<"在输入字符串的尾部添加字符串a:"<<a.append("henu")<<endl;

结果:
在这里插入图片描述
e.交换字符a.swap(b);//字符a,b的交换;

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string a,b;
    cin>>a>>b;
    cout<<"交换前:<<"str1="<<str1<<" "<<"str2="<<str2<<endl;
    str1.swap(str2);
    cout<<"交换后:"<<"str1="<<str1<<" "<<"str2="<<str2<<endl;
    return 0;
}

在这里插入图片描述
f.字符串大小:size()函数和length()函数;//sizeof()用于char型数组的长度求解;

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string a;
    cin>>a;
cout<<a.size()<<endl;
cout<<a.length();
    return 0;
}

结果:
在这里插入图片描述
g.字符串大小的比较:compare()

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string a,b;
    cin>>a>>b;    
cout<<"字符串比较结果:"<<a.compare(b)<<endl;
    return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

综上 a.compare(b)
若a>b则返回-1;
若a<b则返回1;
若a==b则返回0;

h.另外基本的函数

strcpy(s1,s2) :复制字符串s2到s1
strcat(s1,s2) :连接s2到s1的末尾
strlen(s1) :返回字符串s1的长度
strcmp(s1,s2) :若s1和s2是相同的,则返回0,s1< s2,返回值小于0,若s1>s2,返回值大于0

例题:
在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
char zf[210];
int main()
{
  cin.getline(zf,210);
  int cnt=0;
  int len=sizeof(zf);
  for(int i=0;i<len;i++){
  	if(zf[i]=='a'||zf[i]=='d'||zf[i]=='g'||zf[i]=='j'||zf[i]=='m'||zf[i]=='p'||zf[i]=='t'||zf[i]=='w'||zf[i]==' '){
  		cnt++;
	}else if(zf[i]=='b'||zf[i]=='e'||zf[i]=='h'||zf[i]=='k'||zf[i]=='n'||zf[i]=='q'||zf[i]=='u'||zf[i]=='x'){
		cnt+=2;
	}else if(zf[i]=='c'||zf[i]=='f'||zf[i]=='i'||zf[i]=='l'||zf[i]=='o'||zf[i]=='r'||zf[i]=='v'||zf[i]=='y'){
		cnt+=3;
	}else if(zf[i]=='s'||zf[i]=='z'){
		cnt+=4;
	}
  }cout<<cnt;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值