AKSZ-字符串
2024-05-03 11:49:12
发布于:广东
字符串(以下char数组为s)
大小(一字节 256种可能,1字节=8bit,取值范围:-127~127)
ascaii码
例子:
char c[]="abc\0cbdd";
printf("%d%d\n",s.size(c),sizeof(c));//输出结果:3 9
string s[]="abc\0cbdd";
printf("%d %d\n",s.size(),sizeof(s));//输出结果:3 8(8为定值)
1.s.find(子串)
输出结果:字串的第一个字符的下标(时间复杂度:O(nm))
2.s.substr(子串起始位置,子串长度)
意思:截取子串,输出:所截取的子串(时间复杂度:O(n))
3.reverse(s.begin(),s.end());
意思:反转子串(时间复杂度:O(n))
4.getline(cin,s)
意思:读一行无视空格 时间复杂度:O(n)
cin遇到空格就结束
5.拼接O
s+="一个字符串";//时间复杂度:O(m)
debug功能使用说明
1.工具->编译选项->代码生成/优化->连接器->第二个选项点yes
2.把代码存到DEVcpp目录下的
题目:# 小书童——凯撒密码
题目背景
某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。
题目描述
蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 位形成的。z
的下一个字母是 a
,如此循环。他现在找到了移动前的原文字符串及 ,请你求出密码。
输入格式
第一行:。第二行:未移动前的一串字母。
输出格式
一行,是此蒟蒻的密码。
样例 #1
样例输入 #1
1
qwe
样例输出 #1
rxf
提示
字符串长度 ,。
代码示意
#include<bits/stdc++.h>
using namespace std;
int main(){
int k;
string s;
cin>>k;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]+k%26>127){//比如输入25 xyz,加了25超了上线127;所以要先减后加防止超数据范围
s[i]=s[i]-26+k%26;
}
else if(s[i]+k%26>'z'){//如:53 abc,循了两遍,如果不%,就会超'z'
s[i]=s[i]+k%26-26;
}
else{
s[i]+=k%26;
}
}
cout<<s;
return 0;
}
各数据类型范围
这里空空如也
有帮助,赞一个