目前在MPLAB-IDE中为PIC单片机编写C程序。
我只想计算一个字符串的长度,并使用strlen函数。但它始终返回值0。下面是我的编码:
在主循环中,我得到了这个函数:
BYTE RXDATA[128];
CountData(RXDATA);
CountData函数如下:
BYTE CountData(BYTE* pData)
{
BYTE nLen;
nLen = strlen((char*)pData);
return nLen;
}
RXDATA的实际长度通常大于50,但nLen总是给0。你们知道怎么了吗?
或者有其他方法来计算长度吗?
最佳答案
首先,您对CountData()
的调用需要将值存储在某个地方,例如:
int x = countData(RXDATA);
但考虑一下。数不清的人每天都在使用
strlen
而没有失败。测试过你的代码的人数可能只有一位数。你认为问题出在哪里?:-)
如果
strlen
返回零,几乎可以肯定,因为输入缓冲区的第一个字节是\0
,这意味着字符串的长度为零。临时变更:
BYTE RXDATA[128];
CountData(RXDATA);
变成这样:
BYTE RXDATA[128];
strcpy (RXDATA, "Pax");
int x = CountData(RXDATA); // then check x.
看看会发生什么。我想你会看到三个作为回报值。