///提取字符串中的03E8 并将其转化为整数//
void main()
{
char hexString[] = "0206000100010203E832E9";
// 提取 "03E8" 子字符串
char subStr[5]; // "03E8" + 终止符 '\0'
snprintf(subStr, 5, "%s", hexString + 14); // 从索引14开始提取4个字符
// 将十六进制字符串转化为整数
int decimalValue = (int)strtol(subStr, NULL, 16);
// 打印结果
printf("Extracted hex: %s\n", subStr); // 输出:03E8
printf("Decimal value: %d\n", decimalValue); // 输出:1000
}
snprintf()函数说明
str
:目标字符数组,格式化后的输出会被写入这个数组中。size
:指定最大写入字符数,包括字符串的结束符\0
。实际可写入的字符数是size - 1
,因为最后一位要留给结束符。format
:格式化字符串,与printf
函数类似。可以包含格式说明符(如%d
、%s
等)来替换相应的参数。...
:可变参数列表,传入要格式化的数据,如整数、浮点数、字符串等。