cccccct_1 2020-11-26 18:35 采纳率: 94.1%
浏览 1155
已采纳

为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文(明文)

为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文(明文)。  
  
现在的编码规则是:  
将字母A变成字母E,将a变成e,即变成其后第4个字母。W变成A,X变成B,Y变成C,Z变成D。字母按此规则转换,非字母字符不变。  
  
输入数据只包含一行字符串。输出完成后,不要输出回车换行符。

提示:  
对于一行字符的输入,while读入一行字符,这样调试: 
本机调试时用: 
#include <stdio.h> 
int main() 

  char ch; 
  int s=0,i=0; 
  while((ch=getchar())!='\n') 
  { 
    //处理字符ch 
  } 
  return 0; 

 
提交到Jobe时用: 
#include <stdio.h> 
int main() 

  char ch; 
  int s=0,i=0; 
  while(scanf("%c",&ch)!=EOF) 
  { 
    //处理字符ch 
  } 
  return 0; 
}

例如:

输入

China!

结果

Glmre!
  • 写回答

1条回答 默认 最新

  • 502203305 2020-11-26 19:56
    关注
    #include<stdio.h>
    char convert(char c)
    {
        if( 'a' <= c && c <= 'z' )
        {
            return 'a' + (c-'a'+4)%26;
        }
        if( 'A' <= c && c <= 'Z' )
        {
            return 'A' + (c-'A'+4)%26;
        }
        return c;
    }
    int main()
    {
        char s[] = "China!";
        int i;
        for(i = 0 ; i< sizeof(s)-1 ; i++)
        {
            printf("%c",convert(s[i]));
        }
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办