gpt4 book ai didi

C代码破译代码

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

我想编写一个接收编码字符串并打印解码字符串的程序。每个单词后面的数字是用于编码该单词的“左移”数字。

即时:

Please insert the coded string

uif1hdjoh3has0ncpfgf2

The decoded string is:

the eagle has landed

我不明白为什么它不起作用:当我切换时:

solved_lett=(spaced_string[k]-factors[j]-'0'

至:

solved_lett=(spaced_string[k]+factors[j]-'0'

它工作正常(但我想将字母移到左侧而不是右侧)。

以及,让它循环工作的最佳方法是什么意思

a1

将会

z

include <stdio.h>

int main()
{
char string[101]={0}, spaced_string[101]={0}, factors[101]={0}, solved_str[101]={0}, solved_lett;
int i=0, j=0, k=0;

printf("Please insert the coded string\n");
scanf("%s",string);
for (i=0; i<101;i++ ) {
if (string[i]=='\0') {
break;
}
if ((string[i]>96)&&(string[i]<123)) {
spaced_string[i]=string[i];
} else {
spaced_string[i]=32;
factors[j]=string[i];
j++;
}

}
k=0;
j=0;
for (k=0; k<i; k++) {
if (spaced_string==0) {
break;
}
if (spaced_string[k]!=32) {
solved_lett=(spaced_string[k]-factors[j]-'0');
solved_str[k]=solved_lett;
}
else {
j++;
solved_str[k]=32;
}
}


printf("%s",solved_str);

return 0;

}

最佳答案

您想要从 spaced_string 中减去 factors 中的数字

solved_lett = spaced_string[k] - (factors[j] - '0');

这样,您首先将 Factor 转换为 int 值,然后将其减少为实际的 char 值。现在您可以测试结果是否太小而不能成为有效字符:

if (solved_lett < 'a')
solved_lett += 26;

如果您也使用大写字母,则也需要检查它们

关于C代码破译代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989738/

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