gpt4 book ai didi

c++ - 将具有无效字符的 Hex-CString 转换为 long?

转载 作者:行者123 更新时间:2023-11-28 01:35:40 25 4
gpt4 key购买 nike

我使用函数 strtol 将 Hex-CString 转换为 long。

CString data = "A";
TCHAR *end = NULL;
long value = strtol(data, &end, 16);

乍一看,一切都很好。 “A”变为 10,“AC”变为 172,“ACC”变为 2764。一切如您所愿。不幸的是,如果只有 CString 的开头是有效的十六进制值,strtol 也会转换该值。

“ACCUMULATOR”也变成了2764!

我怎样才能避免这种情况?

或者我如何检查我的 CString 是否是一个有效的十六进制数?

最佳答案

检查是否 *end == '\0'。这意味着整个字符串都被解析了,直到空终止符。

对于ACCUMULATOR,它将指向字符U。因此,您可以找出字符串在哪一点之前是有效的

关于c++ - 将具有无效字符的 Hex-CString 转换为 long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49363658/

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