gpt4 book ai didi

c - 将 char* 作为单个字符读取(在 C 中)

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

我会尽力解释这一点,但如果您不太明白我的问题是什么,请随时要求澄清:)

正在为教程解决一个问题,其中可以加密明文消息或可以解密密文消息。加密明文消息工作正常,我坚持的是解密。为了解密,输入一系列数字(每个数字由空格分隔),然后解密回原始字符。这些数字序列保存在一个名为“message”的无符号字符数组中。现在我正在使用 strtok 方法在每个“”处拆分“消息”字符串。我也知道我的问题是什么,只是不确定如何解决。 encode 函数加密和解密并且工作正常 100%。您会在下面的代码中注意到,我传入了 109 以对输出“h”进行编码。但是,当我使用 strtok 方法从消息字符串中获取 109 时,109 不被视为单个数字,而是被视为 1、0 和 9。希望你们都支持我。基本上我想知道如何将 1、0 和 9 视为 1 个单数?提前致谢

unsigned char *parts;
parts = strtok(message, " ");
int counter = 0;
printf("%c", encode(109, key, counter));
while (parts != NULL) {
printf("%c", encode(*parts, key, counter));
counter++;
parts = strtok(NULL, " ");
}

最佳答案

*parts 传递给 encode() 函数会传入 ASCII 字符“1”。您需要将 char 数组转换为单个十进制值。现在你有 { '1', '0', '9', '\0' } 并且需要 109。你可以使用类似 atoi( parts ) 的东西,所以你对编码的调用是 encode(atoi(parts), key, counter).

关于c - 将 char* 作为单个字符读取(在 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26226600/

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