帮我写个C语言函数可以将字符串112233转换为0x11 0x22 0x33并将转换后的数据传递给形参数组
下面是一个将字符串转换为十六进制形式并传递给形参数组的C语言函数的示例代码:
#include <stdio.h>
#include <string.h>
void convertStringToHex(const char* str, int* hexArray, int length) {
int i, j;
char hex[3]; // 存储每两个字符的字符串
// 确保字符串长度符合要求
if (strlen(str) != length * 2) {
printf("Invalid string length.\n");
return;
}
for (i = 0, j = 0; i < length; i++, j += 2) {
strncpy(hex, str + j, 2); // 将每两个字符的字符串复制到hex数组中
hex[2] = '\0'; // 添加字符串结束符
sscanf(hex, "%x", &hexArray[i]); // 将hex数组中的字符串转换为十六进制整数并存储到hexArray中
}
}
int main() {
const char* str = "112233";
int hexArray[3];
convertStringToHex(str, hexArray, 3);
// 打印转换后的十六进制数据
for (int i = 0; i < 3; i++) {
printf("0x%02X ", hexArray[i]);
}
return 0;
}
运行结果:
0x11 0x22 0x33
这个示例中,我们首先定义了一个名为convertStringToHex的函数,它接受三个参数:一个指向字符串的指针str,一个指向整数数组的指针hexArray,以及要转换的字符串的长度length。
在函数中,我们使用strlen函数检查输入字符串的长度是否等于length * 2,以确保输入的字符串长度符合要求。然后,我们使用一个循环来遍历每个要转换的字符对,并使用strncpy函数将每两个字符的字符串复制到hex数组中。接下来,我们使用sscanf函数将hex数组中的字符串转换为十六进制整数,并将其存储到hexArray中的相应位置。
在main函数中,我们定义了一个字符串str和一个整数数组hexArray,并将它们作为参数传递给convertStringToHex函数。然后,我们使用一个循环打印转换后的十六进制数据。
请注意,该示例中的函数假设输入的字符串格式正确,并且每两个字符都可以正确转换为一个十六进制数。如果字符串格式不正确,或者字符串长度不符合要求,函数将输出错误消息并返回
原文地址: http://www.cveoy.top/t/topic/iy9i 著作权归作者所有。请勿转载和采集!