cyx的刷题笔记2022.03.12

编程入门 行业动态 更新时间:2024-10-15 12:36:09

cyx的刷题<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记2022.03.12"/>

cyx的刷题笔记2022.03.12

字符串类型;

最近在刷字符串类型的题目,基本要求就是把输入的几个字符增加,删除,排序等一系列操作。

记录下学到的一些函数以及好用的思路。

1、substr()截取

#include<string>string str = 'abcdefghijklmn';
string str1(str,0,5);
string str2 = str.substr(0,5);
string str3 = str.substr(5)

如图所示str1是‘abcde’;str2是‘abcde’;str3是‘fghijklmn’。

这就是substr函数的用法。

2、replace()替换

例句

#include<iostream>
str = 'abcdefghijklmn'
replace(3,1,'C')

replace(i,n,str)将第i个字符开始的(注意i从0开始)n个字符替换为str。那么例句中的结果应该是str=‘abcCefghijklmn’

3、字典法

这属实是偷懒小窍门了,遇到怎么都编译不过的可以考虑用这个,但不要依赖,做题是为了成长。。具体思路是如下:HJ29加解密码

#include <iostream>
#include <vector>
#include <string>
using namespace std;string strlist1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string strlist2 = "BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890";
void encoder(string str)
{for(int i=0; i<str.size(); i++){for(int j=0; j<strlist1.size(); j++){if(str[i] == strlist1[j]){str[i] = strlist2[j];break;}}}cout<<str<<endl;
}void decoder(string str)
{for(int i=0; i<str.size(); i++){for(int j=0; j<strlist2.size(); j++){if(str[i] == strlist2[j]){str[i] = strlist1[j];break;}}}cout<<str<<endl;
}
int main()
{string str1, str2;while(cin>>str1>>str2){encoder(str1);decoder(str2);}return 0;
}

好处是方便省内存,无脑编。坏处是需要字典够小,比如给你5000个字符对应你就麻爪子了。

更多推荐

cyx的刷题笔记2022.03.12

本文发布于:2024-03-23 02:03:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1739146.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   cyx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!