A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
这道题想了好久,就是没想出来怎样把一个字符变成3个字符,我自己写了一部分,就是可以实现将a变成b,但是后面的那两个一直想不出要怎么加进去,有木有大神帮我解一下~
  1. #include<stdio.h>
  2. int main(){
  3.     int str[100];
  4.     printf("请输入一个字符数组:");
  5.     gets(str);
  6.     for(int i = 0 ; i < strlen(str) ; i++){
  7.         if((str[i] >= 'A' && str[i] <= 'W') || (str[i] >= 'a' && str[i] <= 'w')){
  8.             str[i] += 1;            
  9.         }
  10.     }
  11.     printf("%s",str);
  12.     return 0;
  13. }
复制代码
这是我自己写出来的那一段代码~~



4 个回复

倒序浏览
我也遇到了此问题。。。。
回复 使用道具 举报
#include<stdio.h>

int main()

{
   
    char str1[256],str2[256],*p,*q;
    int x;
    gets(str1); p=str1; q=str2;
    while ( *p )
    { if ( (*p)>='A' && (*p)<='Z' )
    { x=(*p)-'A';
        x++; (*q)=x%26+'A'; q++;
        x++; (*q)=x%26+'A'; q++;
        x++; (*q)=x%26+'A';
    }
    else if ( (*p)>='a' && (*p)<='z' )
    { x=(*p)-'a';
        x++; (*q)=x%26+'a'; q++;
        x++; (*q)=x%26+'a'; q++;
        x++; (*q)=x%26+'a';
    }
    else (*q)=(*p);
        p++; q++;
    }
    (*q)=0; printf("%s\n",str2);}

回复 使用道具 举报
等我晚上回去给你发
回复 使用道具 举报
围观学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马