黑马程序员技术交流社区

标题: 求解答:编程实现对键盘输入的英文名句子进行加密 [打印本页]

作者: waterfoxjie    时间: 2015-3-10 22:53
标题: 求解答:编程实现对键盘输入的英文名句子进行加密
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用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. }
复制代码
这是我自己写出来的那一段代码~~




作者: 秦卷卷    时间: 2015-4-14 18:28
我也遇到了此问题。。。。
作者:   张恒宇    时间: 2015-6-16 03:08
#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);}


作者: 落水的兔子    时间: 2015-6-16 16:25
等我晚上回去给你发
作者: 湘陵依点    时间: 2016-1-3 23:14
围观学习下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2