| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1138 人关注过本帖
标题:字符变换问题
只看楼主 加入收藏
a1067942077
Rank: 2
等 级:论坛游民
帖 子:36
专家分:11
注 册:2016-10-15
结帖率:38.46%
收藏
 问题点数:0 回复次数:2 
字符变换问题
“a”能用“e”来代替
现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
E C F A J K L B D G H I V W Z Y M N O P Q R S T U X
a b c d e f g h i j k l m n o p q r s t u v w x y z
e r w q t y g h b n u i o p s j k d l f a z x c v m
本题包括多组测试数据。每组测试数据为一行:为仅由字母和空格组成的字符串(空格不变)。输入以单行“#”结束
样例输入
Ilttabaje zaujljg
#
样例输出
Different meaning

代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
        int i,j,k;
        char letter[4][26]={{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'},{'E','C','F','A','J','K','L','B','D','G','H','I','V','W','Z','Y','M','N','O','P','Q','R','S','T','U','X'},{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'},{'e','r','w','q','t','y','g','h','b','n','u','i','o','p','s','j','k','d','l','f','a','z','x','c','v','m'}};
        char str[400];
        while(1)
        {
            gets(str);
            if(str[0]=='#')
            exit(-1);
                for(i=0;str[i]!='\0';i++)
            {
                for(j=0;j<=2;j+=2)
                    for(k=0;k<26;k++)
                    if(str[i]==letter[j][k])
                    {
                        str[i]=letter[j+1][k];
                        break;
                    }
            }
            puts(str);
        }
}

OJ上显示错误:
使用了系统禁止的操作系统调用,看看是否越权访问了文件或进程等资源
缓冲区溢出,检查是否有字符串长度超出数组的情况
搜索更多相关主题的帖子: include meaning 字符串 字母 
2016-12-14 16:46
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10565
专家分:43004
注 册:2014-5-20
收藏
得分:0 
#include<stdio.h>
main()
{
    char *letter="ECFAJKLBDGHIVWZYMNOPQRSTUXerwqtyghbnuiopsjkdlfazxcvm";
    char chr[128]={0};
    char str[400];
    int i;
    for (i=65; i<91; i++)
        chr[i] = letter[i-65];
    for (i=97; i<123; i++)
        chr[i] = letter[i-71];
    chr[' '] = ' ';
    while(1)
    {
        gets(str);
        if (*str == '#')
            break;
        for (i=0; str[i]; i++)
            str[i] = chr[str[i]];
        puts(str);
    }
}
2016-12-14 19:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int main( void )
{
    const char uppmap[] = "ECFAJKLBDGHIVWZYMNOPQRSTUX";
    const char lwrmap[] = "erwqtyghbnuiopsjkdlfazxcvm";

    for( char s[400]; gets(s) && !(s[0]=='#' && s[1]=='\0'); ) // 400这个数字我不知道对不对,抄于你的代码
    {
        for( char* p=s; *p; ++p )
        {
            if( *p>='A' && *p<='Z' )
                *p = uppmap[*p-'A'];
            else if( *p>='a' && *p<='z' )
                *p = lwrmap[*p-'a'];
        }
        puts( s );
    }

    return 0;
}
2016-12-15 09:33
快速回复:字符变换问题
数据加载中...
 
   



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

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