c - C: 如何使用 sizeof 分割一个字符?
问题描述
我有一个 char 数组,我想每 16 个字节拆分一次。这是如何在 C 中完成的?目的是用其他东西替换 16 个字节中的每个字节。
我已经实现了替换功能,所以我只需要每 16 个字节使用一次。在伪代码中:
void sub(unsigned char* s){
for (int i = 0; i < 16; i++)
{
state[i] = S[state[i]]; //S[] is a char array (S-Box). which consists of the values state needs to be substituted with.
}
}
int main(void){
char message[] = "This is the message I want to encrypt!"
for every 16 bytes {
sub(message);
}
}
解决方案
一个例子是
#include <stdio.h>
#include <stdlib.h>
void sub(char *array, size_t size, char target_char)
{
size_t num_segments = size / 16;
for(size_t i=0; i<num_segments; ++i)
{
array[15 + i * 16] = target_char;
}
}
int main(int argc, char** argv)
{
if (argc != 3)
{
printf("need 3 args\n");
exit(1);
}
size_t size;
char *array = argv[1];
printf("original char array: %s\n", array);
sscanf(argv[2], "%zu", &size);
sub(argv[1], size, 'x');
printf("new char array: %s\n", array);
return 0;
}
推荐阅读
- docker - 如何以非 root 用户身份构建 go docker 映像?
- json - 使用 jq 的 json 到 csv 问题
- javascript - 按键获取对象,保持键位
- python - 我们如何编写一个函数来获取文件名并在 pandas 中创建数据框?(没有 pandas 内置函数)
- asp.net -
我试图弄清楚这是如何工作的。在来自 VS 模板(Web 表单)的站点主文件中,我阅读了以下内容:
<asp:ScriptManager runat="server"> <Scripts> <asp:ScriptR
- c++ - C++ 递归函数
- python - 诗歌虚拟环境已激活
- reactjs - useEffect 操纵次要值
- javascript - JS 无法发布或获取元素
- jakarta-ee - 在自由上替换 websphere jar 文件