String类型——字符串

1、string类型(数据类型)概念:

2、判断字符串的长度

3、遍历字符串,找位置是3的倍数的数字 

#include <iostream>
using namespace std;
int main()
{
    string s;
    cin >> s;
    for (int i = 0; i < s.length(); i++) 
    {    
        // 遍历字符串中的每个元素
        if((i+1) % 3 == 0)
        {
            cout <<s[i];
        }
    }
	return 0;
}

4、凯撒加密

        字符串+偏移量

5、求偏移后的加密结果(偏移量 = 字符自增的大小)

                

问题:如果偏移后的字符超出字母z ?

        

假设:偏移量是n,字母对应的数字是x;然后对(n + x)结果进行判断

        如果(n + x)小于等于25 ,那偏移后的结果依然是(n + x);

        如果(n + x)大于25,那就对(n + x)除以26的结果进行取余数,得到的余数就是偏移后的结果

 例如:

 

总结:对任何情况都可以使用(n + x)% 26取余

 例如:

#incude <iostream>
using namespace std;
int main()
{
    char x;   //x为输入的字母
    int n;    //n是偏移量
    cin >>x >>n;
    
    if((x > 'a') && (x < 'z'))
    {
        x = ((x - 'a' + n) % 26) + 'a';    
        //先通过(x-'a')得到字母x对应的数值,然后加上偏移量n,再求余数,再将得到的余数加上字符'a'转换成字母
    }    
    return 0;
}

6、对字符串进行凯撒加密 (需要判断大小写)

#include <iostream>
using namespace std;
int main()
{
	string s;   //字符串s
    int n;      //偏移量n
    cin >> s >> n;
    
    for (int i = 0; i < s.length(); i++)
    {
        if((s[i]>='a') && (s[i]<='z'))    //判断小写字母
        {
            s[i] = (s[i] - 'a' + n)%26 +'a';
        }
        if((s[i]>='A') && (s[i]<='Z'))    //判断大写字母
        {
            s[i] = (s[i] - 'A' + n)%26 +'A';
        }
    }
	cout << s;
	return 0;
}

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值