gpt4 book ai didi

Caesar Cipher c 程序不接受

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:57 26 4
gpt4 key购买 nike

为什么我的代码不接受不包含字符 a-z A-Z 0-9 的字符串?如果要对此进行加密以转移例如“aaaaa[[[[[[”,我得到一个错误。我想要代码,以便它也可以接受空格或任何内容,并跳过那些不是 a-z、A-Z、0-9 的内容。

为什么我最后的 else 语句不能解决问题?

例如:

"a       a" shift 1 

应该是

"b       b"

我的代码:

#include <stdio.h>

int main (){

char word[20];
int rotx;

printf("enter string\n");
scanf("%s", word);

printf("enter rotations\n");
scanf("%d", &rotx);

encrypt(word, rotx);

return 0;
}

void encrypt (char word[], int rotx){

int w = strlen(word) - 1;
int i = 0;

for ( ; i <= w; i++)
if ((word[i] + rotx) >= 65 && (word[i] + rotx) <=90)
{
word[i] += (rotx);
}
else if ((word[i] + rotx) >= 97 && (word[i] + rotx) <=122)
{
word[i] += (rotx);
}
else if ((word[i] + rotx) >= 48 && (word[i] +rotx) <= 57)
{
word[i] += (rotx);
}
else if ((word[i] + rotx) > 90 && (word[i]+rotx) <97)
{
word[i] = 64 + (rotx - (90-word[i]));
}
else if ((word[i] + rotx) > 122)
{
word[i] = 96 + (rotx - (122-word[i]));
}
else
{
continue;
}
}

最佳答案

老实说,我不知道你在做什么。这是我认为凯撒密码基于我阅读的维基百科的代码。如果有人发现出于演示原因而有害的非句法缺陷请告诉我。

PS,考虑阅读“https://www.kernel.org/doc/Documentation/CodingStyle”,它将对您(和我)有很大帮助。PS:如果我打破了上面的编码风格,这并不意味着我是伪君子,我只是选择最适合我的风格。

编码需要 5 分钟。

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

void encrypt(char *res, char *word, int rot)
{
int len;
int i;
int tmp;

len = strlen(word);

for (i = 0; i < len; ++i) {
tmp = word[i] - 'a';
tmp += rot;
tmp %= ('z' - 'a');
res[i] = tmp + 'a';
}

res[len] = 0;
}

void decrypt(char *res, char *word, int rot)
{
int len;
int i;
int tmp;

len = strlen(word);

for (i = 0; i < len; ++i) {
tmp = word[i] - 'a';
tmp -= rot;
tmp %= ('z' - 'a');
res[i] = tmp + 'a';
}

res[len] = 0;
}

int main()
{
char word[20];
char result[20];
char decode[20];
int rot;

printf("enter a word: ");
scanf("%s", word);

printf("enter rotations: ");
scanf("%d", &rot);

encrypt(result, word, rot);

printf("result: %s\n", result);

decrypt(decode, result, rot);

printf("decode: %s\n", decode);

return 0;
}

关于Caesar Cipher c 程序不接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754794/

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