gpt4 book ai didi

在C中复制字符

转载 作者:行者123 更新时间:2023-11-30 21:17:12 27 4
gpt4 key购买 nike

我正在开发一种凯撒密码之类的程序来亲自动手,但我坚持使用以下代码:

char * encrypt(char *input) {
int length = strlen(input);
char *encrypted;

encrypted = malloc(length+1);
encrypted[0] = 0;

int i;
for(i=0; i < length; i++) {
printf("%c\n", input[i]);
if (i>0) {
encrypted[i] = input[i];
}
}

encrypted[length] = '\0';
printf("Encrypted: %s\n", encrypted);
return encrypted;
}

现在我只是想弄清楚为什么我无法为字符复制输入字符。末尾的加密字符串显示为空。然而 charprintf 语句会产生正确的值。

代码可能有什么问题?

最佳答案

您没有复制字符串的第一个字符(位于索引 0 处)。您确实将该字符设置为 0 (NUL),因此当您将 encrypted 打印为字符串时,看起来它的长度为零。

删除if (i>0)测试并无条件复制字符。您还可以删除 encrypted[0] = 0; 行,因为您将使用字符串的第一个字符覆盖它。

关于在C中复制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583940/

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