我想将函数分配给packetbuf_copyfrom()
。我使用了 *
和 &
但它在转换后没有给我正确的密码。
这是函数:
void caesar (char cipher[], int shift) {
int i = 0;
while (cipher[i] != '\0') {
cipher[i] += (shift);
i++;
}
printf("%s\n", cipher);
}
{
char cipher[10]="Hello";
int key = 5;
caesar (cipher, key);
packetbuf_copyfrom((*caesar),8);
}
我想要 packet_copyfrom()
函数从函数 caesar
复制。
我应该做什么?
最佳答案
首先,凯撒密码公式为
所以你的代码可能是:
cipher[i] = (cipher[i] - 'a' + shift)%26 + 'a'; // for input is lower case and output is lower case.
其次,应用公式时应考虑字符大小写。您想要全部大写还是小写?只要确保您的编码和解码一致即可。
第三,将cipher
传递给packetbuf_copyfrom
packetbuf_copyfrom(&cipher[0],8);
关于c - 将函数分配给 packetbuf_copyfrom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028714/