gpt4 book ai didi

c - 凯撒密码和反向文本程序的问题

转载 作者:行者123 更新时间:2023-11-30 19:39:41 25 4
gpt4 key购买 nike

我正在尝试创建一个获取字符串和数字的函数,如果数字大于“0”,那么它将使用用户输入的字符串和数字生成凯撒密码。例如 -> 'stack' 且编号为 '3' -> 'uvdfn'。如果数字是“0”,那么它将反转字符串。例如 - 'stack' -> 'kcats'

我不知道代码有什么问题,我没有看到任何问题。

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

void decryptText(char* encText, int n);

#define STR_SIZE 50
int main(void)
{
char str[STR_SIZE];
int num = 0;

printf("Please enter the string : ");
fgets(str, STR_SIZE, stdin);

printf("Please enter a number : ");
scanf("%d", &num);

decryptText(str, num);

system("PAUSE");
return 0;
}


void decryptText(char* encText, int n)
{
int i = 0;
int j = 0;
char temp = 0;

int strLen = strlen(encText);

if (n > 0)
{
for (i = 0; i < strLen; i++)
{
if (*(encText + i) == ' ') { }
else
{
if (*(encText + i) >= 'x')
{
*(encText + i) = (*(encText + i)) - 26;
}
*(encText + i) = (*(encText + i)) + n;
}
}

printf("The array after the program deciphered it : \n");
printf("%s", encText);
}

else if (n == 0)
{
for (i = 0; i < strLen; i++)
{
for (j = 0; j >= 0; j--)
{
temp = *(encText + i);
*(encText + i) = *(encText + j);
*(encText + i) = temp;
}
}

printf("The array after the program cracked it : \n");
printf("%s", encText);
}
}

最佳答案

if (*(encText + i) >= 'x')
{
*(encText + i) = (*(encText + i)) - 26;
}

应该是

if (*(encText + i) + n > 'z')
{
*(encText + i) = (*(encText + i)) - 26;
}

关于c - 凯撒密码和反向文本程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233558/

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