gpt4 book ai didi

更改特定索引处的十六进制数组

转载 作者:行者123 更新时间:2023-11-30 20:25:38 27 4
gpt4 key购买 nike

// if i received from a systemA 
else if(test_addr.sin_addr.s_addr == systemA_addr.sin_addr.s_addr){
if(CHECK_STATUS ==0){
sendto(sock, ca, bytes_read, 0, (struct sockaddr *)&CSS_addr, sizeof(CSS_addr));
memcpy(last_systemA_msg, ca, sizeof(ca));
memset(ca,0,BUFLEN);
for (j = 0; j < bytes_read; ++j) {
printf("%02x", last_systemA_msg[j]); //02x
}
printf("\n");
}
}

if(CHECK_STATUS ==1 && (strcmp(rcvd_ASR_msg,"MESSAGE_RCVD") == 0)){
last_systemA_msg[16] = 0x05;
sendto(sock, last_systemA_msg, bytes_read,0,(struct sockaddr *)&CSS_addr, sizeof(CSS_addr));
printf("The data is modified\n");
for (k = 0; k < bytes_read; ++k) {
printf("%02x", last_systemA_msg[k]); //02x
}
printf("\n");
}

我得到第一部分的输出

            65210014a80d010101000001000000000000000000000000000

我需要修改这些数据,因为它们是十六进制,所以我这样做了..

我应该期望数据被修改为

            65210014a80d010101000001000000050000000000000000000

然后我需要通过套接字发送这个完整的数据。

但是我得到了这个--???

            The data is modified
65210014230f01010100000100000000
65210014240f01010100000100000000000000000000000000

虽然我更改了该位置的值,但为什么我的数据没有被修改?为什么它的长度与原始数据不同?

最佳答案

您的最后两个示例不是相同的数据。一个包含子字符串 230f,另一个包含 240f。在您的代码中,以 if(CHECK_STATUS ==1 ... 开头的第二部分尽管缩进,但并不位于以 else if 开头的上一个代码块内,该代码块不一定会被执行.

关于更改特定索引处的十六进制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27923317/

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