gpt4 book ai didi

c - 加密程序交换?

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:10 24 4
gpt4 key购买 nike

我正计划创建一个加密程序。基本上交换任何从正常的“abcdefghijklmnopqrstuvwxyz”到“thequickbrownfxjmpsvlazydg”的东西。

例如,如果我输入“abc”,结果将是“the”。

#include <stdio.h>
#include <string.h>

void encrypt(char *text, char *map);
void decrypt(char *text, char *map);

int main()
{

char a[] = {'a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char b[] = {'t','h','e','q','u','i','c','k','b','r','o','w','n','f','x','j','m','p','s','v','l','a','z','y','d','g'};
char *textptr;
char *mapptr;

textptr = a;
mapptr = b;

encrypt(textptr, mapptr);

return 0;
}

void encrypt(char *text, char *map)
{
char string[100];
int len;
int x = 0, y = 0, l = 1;

printf("Please enter the string: ");
scanf("%s", string);
len = strlen(string);

for (x = 0; x < len; x++)
{
for (y = 0; y < 26; y++)
{
if(text[x] == map[y])
text[x] = map[y];
}
}

printf("The Ciphertext is: %s", string);
}

并且输出是与输入相同的纯文本..你们能帮我解决这个问题吗?

最佳答案

你的问题出在这里:

strcpy (string[q],map[r]);

您将两个 char 传递给 strcpy() 而不是 char *。要替换单个字符,只需执行

string[q] = map[r];

编辑:新代码

if(text[x] == map[y])
text[x] = map[y];

这显然没有任何改变。应该是

if( string[x] == text[y] )
string[x] = map[y];

关于c - 加密程序交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18569882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com