目前在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.

看看会发生什么。我想你会看到三个作为回报值。

07-24 13:46