【发布时间】:2015-04-08 14:22:58
【问题描述】:
我目前正在使用strlen 方法来计算这个字符串的长度:
56 69 56 4F 74 65 63 68 32 00 2C 00 00 27 6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 04 10 10 87 01 01
主要问题是遇到 00 时它总是停止,我认为它与 '\0' 混淆了!所以我想知道这种方法是否有替代品,或者你有什么可以解决这个问题的建议。
P.S:我不确定问题是否重复我搜索了相同的问题但找不到令人满意的答案!
编辑:
我的代码:
unsigned char Response[269]={0x00};
unsigned char Response_PPSE[269];
for(i=0;i<=strlen(Response);i++)
sprintf(Response_PPSE+(2*i),"%02X",Response[i]);
strlen 只计算这个字节的长度: 56 69 56 4F 74 65 63 68 32 00
【问题讨论】:
-
你能告诉我们你的代码吗?
-
这是一串数字(例如
"56 69 56 4F 74 ..."),还是一个char数组,值为0? -
“我认为它与
'\0'混淆了!”没有混乱。它们是同一个东西,一个 ASCII 0 字符。 -
如果您不想在第一个 0 处停止(这是
strlen()所做的,以及字符串的长度 表示,在 C 中),如何您是否希望知道何时到达字符串的末尾? -
虽然这个问题很幼稚,但我无法想象人们为什么对它反对。这是一个新用户的认真问题。