吃肉的考拉 发表于 2014-4-21 20:50

计算字符串长度

我的字符串数组里都是零 怎么调用测长度的函数得到512呢?

zhangmangui 发表于 2014-4-21 22:14

SCiRxData你看看定义吧   应该是一个数据吧
strlen应该是从SCiRxData在内存中的第一个开始计数知道遇到一个‘\0’就停止计数
用sizeof试试吧

吃肉的考拉 发表于 2014-4-21 22:33

zhangmangui 发表于 2014-4-21 22:14 static/image/common/back.gif
SCiRxData你看看定义吧   应该是一个数据吧
strlen应该是从SCiRxData在内存中的第一个开始计数知道遇到 ...

unsigned char SCiRxData;检查c就是0,SCiRxData就成512了,而且watch里头两个数组里都是"\000"

zhangmangui 发表于 2014-4-21 22:41

吃肉的考拉 发表于 2014-4-21 22:33 static/image/common/back.gif
unsigned char SCiRxData;检查c就是0,SCiRxData就成512了,而且watch里头两个数组里都是"\000" ...

你看看MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默认值   

吃肉的考拉 发表于 2014-4-21 22:48

zhangmangui 发表于 2014-4-21 22:41 static/image/common/back.gif
你看看MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

MAXSIZE是100   数组里初始化全是'\0'

吃肉的考拉 发表于 2014-4-21 22:52

zhangmangui 发表于 2014-4-21 22:41 static/image/common/back.gif
你看看MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

c放到函数外面也不行了,必须放到函数里定义

吃肉的考拉 发表于 2014-4-22 11:14

吃肉的考拉 发表于 2014-4-21 22:52 static/image/common/back.gif
c放到函数外面也不行了,必须放到函数里定义


Uint16 long_size(unsigned char *str)
{
        Uint16 cnt = 0;
        while(str!='\0')
        {
                cnt++;
                str++;
        }
        return cnt;
}我自己写了个求长度的函数,发现识别不了'\0';watch窗口里已经显示数组值为'\000'了,但是跳不出while

zhangmangui 发表于 2014-4-22 23:27

吃肉的考拉 发表于 2014-4-22 11:14 static/image/common/back.gif
Uint16 long_size(unsigned char *str)
{
        Uint16 cnt = 0;


你送入一个字符数组    在数组的最后一位中存入‘\0’试试

吃肉的考拉 发表于 2014-4-24 10:13

zhangmangui 发表于 2014-4-22 23:27 static/image/common/back.gif
你送入一个字符数组    在数组的最后一位中存入‘\0’试试

我原来是c2812的gel文件,现在改成f2812的可以了,不知道是不是这个原因

zhangmangui 发表于 2014-4-24 22:28

吃肉的考拉 发表于 2014-4-24 10:13 static/image/common/back.gif
我原来是c2812的gel文件,现在改成f2812的可以了,不知道是不是这个原因

不会吧   GEL只是辅助CCS的语言而已
怎么可能与这个有关系呢?

msblast 发表于 2014-4-25 09:27

接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

吃肉的考拉 发表于 2014-4-25 17:21

msblast 发表于 2014-4-25 09:27 https://bbs.21ic.com/static/image/common/back.gif
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

PDU编码,但现在不是接受不接受短信的问题,是直接给个字符串,调用函数识别不了字符

msblast 发表于 2014-4-25 17:38

吃肉的考拉 发表于 2014-4-25 17:21 static/image/common/back.gif
PDU编码,但现在不是接受不接受短信的问题,是直接给个字符串,调用函数识别不了字符 ...

strlen只能处理ASCII码

msblast 发表于 2014-4-25 18:09

msblast 发表于 2014-4-25 09:27 static/image/common/back.gif
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

既然知道是PDU码就先解码得到有效信息再处理。
解码之后得到的文本编码应该为Unicode码,需要确认。
对于Unicode编码的文本,得用对应的字符函数来处理。
页: [1]
查看完整版本: 计算字符串长度