注册 登录
编程论坛 C语言论坛

大学生作业,c语言字符加密,A变z,a变Z

xzt161563002 发布于 2022-12-08 22:09, 879 次点击
c语言字符数组加密,A变z,a变Z,
输入任意一个字符串,程序对该字符串进行加密,加密方法是将字符串中的每个字符按一定的规律转换为其它字符,转换规则如下:
(1)大写字母变以字母表中心位置为对称的小写字母,即将A变成z,B变成y,…,Z转换为a。
(2)小写字母变以字母表中心位置为对称的大写字母,即将a变成Z,b变成Y,…,z转换为A。
(3)其它字符不变
例如输入输入Attack,输出zGGZXP,如图所示,在线等大佬求救
只有本站会员才能查看附件,请 登录
2 回复
#2
s962812022-12-08 23:04
程序代码:
#include <stdio.h>
#include <ctype.h>
#include <string.h>


int low_up(int letter) {
    if (islower(letter)) {
        return toupper(letter);
    }
    else {
        return tolower(letter);
    }
    return 0;
}

int encode(int letter) {
    if (letter >= 97){
        return 219 - letter;
    }
    else {
        return 155 - letter;
    }
    return 0;
}

int main()
{
    char string[100];
    printf("請輸入任意一個字符串(退出時請輸入0):");
    scanf("%99[a-zA-z0]s", string);
    if (string[0] == '0') {
        return 0;
    }
    printf("加密後的字串符為:");
    for (int i = 0; i < strlen(string); i++){
        printf("%c", encode(low_up(string[i])));
    }
    return 0;
}
#3
rjsp2022-12-09 09:05
输入任意一个字符串
这所谓的“字符串”是以空白字符分隔,还是以回车字符分隔?是题目本身就写得不清不楚,还是你没把题目贴全?

程序代码:
#include <stdio.h>

char foo( char ch )
{
    if( ch>='A' && ch<='Z')
        return 25-(ch-'A')+'a';
    if( ch>='a' && ch<='z')
        return 25-(ch-'a')+'A';
    return ch;
}

void test( const char* s )
{
    for( const char* p=s; *p; ++p )
        putchar( foo(*p) );
}

int main( void )
{
    // 这里没法写,因为题目没交代

    test( "AttackMidWayDec17" );
}
1