首页 > 其他分享 >string字符串

string字符串

时间:2024-09-04 08:53:43浏览次数:4  
标签:string int cin 字符串 getline cout

string字符串

1.翻转字符串

#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
/*方法1.reverse搭配迭代器
reverse(s.begin(),s.end());
cout<<s;
*/
/*方法2.反着输出
for(int i=s.length()-1;i>=0;i--){
cout<<s[i];
}*/
//方法3.一半交换
for(int i=0;i<(s.length())/2;i++){
swap(s[i],s[s.length()-i-1]);
}
cout<<s;

return 0;
}

2.string遍历

(1)迭代器

#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
for(auto i=s.begin();i!=s.end();i++){
cout<<*i;
}
return 0;
}

 引用可修改

3.string定义

重复字母

string a(2,'A');//产生的字符串a是AA

4.子串

substr(截取起点,截取长度);

5.整行输入(解决不能输入空格)

getline(cin,字符串名称);

 6.find函数

 

找到返回第一次出现的起点,找不到返回-1

例1:寻找t在s中不重叠出现次数,例如s="aaaaa",t="aa",结果为2

#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
string t;
getline(cin,t);
int cnt=0;
for(int i=0;i<s.size();i++){
int a=s.find(t,i);//find函数,i表示寻找起点
if(a==-1)break;
else{
cnt++;
i=a+t.length()-1;

}
}
cout<<cnt;
return 0;
}

总结:

字符串1.find(字符串2,从哪开始找)

字符串1是在哪找,字符串2是要找的

返回值是:

如果找到范围第一次出现的位置起点

找不到返回-1

 

 

 

 

标签:string,int,cin,字符串,getline,cout
From: https://www.cnblogs.com/luckyhappyyaoyao/p/18395746

相关文章

  • 字符串操作补充
    1.字符串的查找    a.许多时候我们想知道某个特定的单词或短语是否在一篇文章当中,我们可以运用查找解决这一问题,我们以字符串在单词中的查找为例fruit='banana'if'n'infruit:print('yes')    b.讨论完字符串在不在单词之后,我们的下一个目标......
  • python 怎么判断字符串开头
    函数:startswith()作用:判断字符串是否以指定字符或子字符串开头。一、函数说明语法:string.startswith(str,beg=0,end=len(string))或string[beg:end].startswith(str)参数说明:string:被检测的字符串。str:指定的字符或者子字符串。(可以使用元组,会逐一匹配)beg:设置字符串......
  • 20240903mystring进阶
    #include<iostream>#include<cstring>#include<stdexcept>//Forstd::out_of_rangeclassMystring{public://默认构造函数Mystring():str(nullptr),len(0){}//有参构造函数Mystring(constchar*s){len=strlen(......
  • 批量替换字符串中的某子串序列为对应的另一子串序列(z3求解器解多元方程时很好用)
    标题有点拗口,看问题需求就理解了——一,问题需求有一个字符串s1,其中包含a1、a2、a3到a14这些子串,我需要将s1中出现的这些子串全部对应替换成v[0],v[1],v[2]到v[13]等等,应该怎么编写程序例如:s1='a1*88+a2*67+a3*65-a4*5+a5*43+a6*89+a7*25+a8*1......
  • LeetCode_0028. 找出字符串第一个匹配项的下标,KMP算法的实现
    题目描述  给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹......
  • 【已解决】Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.
    一、问题描述Invalidvaluetypeforattribute‘factoryBeanObjectType‘:java.lang.String二、解决方案更新本地的Mybatisplus版本<dependency>  <groupId>com.baomidou</groupId>  <artifactId>mybatis-plus-spring-boot3-starter</artifactId> ......
  • CF 2100-2400 strings 乱做
    CF1995DCases显然如果选了某个字符那么不妨选它出现的所有位置。check方式等价于相邻两个选择的位置间距\(\lek\),等价于连续\(k\)个必须选一个(最后一个必须选)枚举位置维护字符集是做不了的,状态数\(O(n2^c)\)无法优化考虑枚举字符集\(s\)。设原串连续\(k\)个字符的字......
  • 多字节字符串和宽字节字符串相互转换
    #define_CRT_SECURE_NO_WARNINGS/*多字节转宽字节*/intunsafe_mbstowcs(){//设置当前的locale为用户环境变量指定的localesetlocale(LC_ALL,"");//定义多字节字符串constchar*mbstr="Hello,世界!";//计算需要的缓冲区大小size_......
  • 第十讲:怎么给字符串字段加索引?
    第十讲:怎么给字符串字段加索引?​ 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。总概类似邮箱登录系统的长表索引假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:mysql>createtableSUser(IDbigintunsigned......
  • 【4.0】字符串的内置方法
    【一】字符串内置方法#【1】字符串拼接#"+"可以字符串拼接#''.join(可迭代类型)借助元组或者列表print(''.join(["1","2","3"]))#123print("-".join("coll"))#c-o-l-lprint("*".join({"fit",......