gpt4 book ai didi

c - 凯撒密码奇怪的不需要的三位数代码打印输出

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:07 25 4
gpt4 key购买 nike

密码确实有效;只是我也得到了一些用斜杠分隔的奇怪的三位数代码。任何帮助将不胜感激。这是我的代码。

代码看起来像这样但是有随机数/354/233/645/810/236

    #include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cs50.h"

int i, len;
string sentance, encrypted;
int k, argvLen;

int caesar (int k){

printf("Hi I'm Ceaser! What would you like me to cipher?\n");

sentance = GetString();
len = strlen(sentance);
char encrypted[len];

for (i=0; i<len; i++) {
if (sentance[i] >='a' && sentance[i] <='z') {
encrypted[i] = ((sentance[i] - 'a' + k) % 26) + 'a';

}
else if (sentance[i] >='A' && sentance[i] <='Z') {
encrypted[i] = ((sentance[i] - 'A' + k) % 26) + 'A';

}
else if (sentance[i] >=' ' && sentance[i] <= '@'){
encrypted[i] = sentance[i];
}

}


printf("%s", encrypted);
return 0;
};


int main (int argc, const char * argv[]) {

if (argc==2) {
k = atoi(argv[1]);
argvLen = strlen(argv[1]);
for (i=0; i<argvLen; i++){
if (isdigit(argv[1][i])){
caesar(k);
}
else {
printf("please enter a number for the key!");
return 1;
}

}

return 0;

}
};

最佳答案

您没有正确终止 encrypted 字符串。

你需要:

  1. 使用 char encrypted[len + 1]; 确保您有空间容纳终止符。
  2. encrypted[len] = '\0'; 在循环之后。

关于c - 凯撒密码奇怪的不需要的三位数代码打印输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838238/

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