lashangxiaodi 2021-09-27 22:22 采纳率: 75%
浏览 68
已结题

向各位求解字符串加密问题,拜托

输入一串字符(长度不超过100)和一个正整数 k ,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母 c 加一个序数 k ,即用它后面的第 k 个字母代替,变换公式: C = C + k 。如果字母为 Z ,则后一个字母是 a ,也就是字母字符形成一个圆。
(注意输入第一行是一个整数k,第二行是若干字符)

  • 写回答

2条回答 默认 最新

  • 关注
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int i,k,len;
        char str[100]={0};
        scanf("%[^\n]%*c",str); 
        len=strlen(str);
        scanf("%d",&k);
        k=k%26;
        for(i=0;i<len;i++)
        {
            if(str[i]<'A'||(str[i]>'Z'&&str[i]<'a')||str[i]>'z')
            str[i]=str[i];
            else
            {
                if(str[i]>='a'&&str[i]<='z')
                {
                    if(str[i]-96<=26-k)
                    str[i]=str[i]+k;
                    else
                    str[i]=str[i]+k-26;
                }
                else
                {
                    if(str[i]-64<=26-k)
                    str[i]=str[i]+k;
                    else
                    str[i]=str[i]+k-26;
                }
            }
        }
        for(i=0;i<len;i++)
        printf("%c",str[i]);
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月27日
  • 已采纳回答 9月27日
  • 修改了问题 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换