| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 638 人关注过本帖
标题:密码破译
只看楼主 加入收藏
ll1512121699
Rank: 1
来 自:成都
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-3-21
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:4 
密码破译
#include<stdio.h>
#include<string.h>
void main()
{
    int n,i;
    char str[200];
    scanf("%d",&n);
    getchar();
    while(n--)
    {
        gets(str);
        for(i=0;i!='\0';i++)
            str[i]=str[i]+1;//把每个字母变成后面的字母
        puts(str);
    }
}
对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。
例如:Hello! How are you!变成Ifmmp! Ipx bsf zpv!
怎么输出后面的字母啊?
搜索更多相关主题的帖子: 密码 include 字符串 字母 
2013-04-08 20:45
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:10 
#include<stdio.h>
#include<string.h>
main()
{
    int i=0;
    char a[200];
    scanf("%s",a);
    while(a[i]!='\0')
    {
        if('a'<=a[i]&&a[i]<='y' || 'A'<=a[i]&&a[i]<='Y')
            a[i]++;
        else
            a[i]=a[i]-25;
        i++;
    }
    printf("%s",a);
    return 0;
}

三十年河东,三十年河西,莫欺少年穷!
2013-04-08 21:01
oxeno
Rank: 2
等 级:论坛游民
威 望:1
帖 子:12
专家分:19
注 册:2013-4-8
收藏
得分:10 
#include<stdio.h>
int main()
{
    char cp[]="Hello! How are you!";
    int i=0;
    for (i=0; i<sizeof(cp)/sizeof(cp[0]); i++)
    {
        if(cp[i]>='A' && cp[i]<='z')
        {
                if(cp[i]=='z')
                {
                        cp[i]='a';
                }
                else if(cp[i]=='Z')
                {
                        cp[i]=='A';
                }
                else
                {
                        cp[i]+=1;
                }
        }
    }
    printf("%s\n",cp);
    return 0;
}

****************************************
输出结果:

Ifmmp! Ipx bsf zpv!
2013-04-08 21:09
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
..
2013-04-09 18:20
ll1512121699
Rank: 1
来 自:成都
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-3-21
收藏
得分:0 
回复 2楼 韶志
为什么while(a[i]!='\0')  i++;不能写成for循环。
#include<stdio.h>
#include<string.h>
int main()
{
    int i;
    char a[300];
    scanf("%s",a);
    for(i=0;i!='\0';i++)
    {
        if('a'<=a[i]&&a[i]<='y'||'A'<=a[i]&&a[i]<='Y')
            a[i]++;
        else
            a[i]=a[i]-25;
    }
    printf("%s\n",a);
    return 0;
}

坚持!永远坚持……
2013-04-11 19:34
快速回复:密码破译
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023559 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved