[DSP编程] 计算字符串长度

[复制链接]
1827|13
 楼主| 吃肉的考拉 发表于 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
SCiRxData你看看定义吧   应该是一个数据吧  
strlen应该是从SCiRxData在内存中的第一个开始计数  知道遇到 ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zhangmangui 发表于 2014-4-21 22:41 | 显示全部楼层
吃肉的考拉 发表于 2014-4-21 22:33
unsigned char SCiRxData[MAXSIZE];检查c就是0,SCiRxData就成512了,而且watch里头两个数组里都是"\000" ...

你看看  MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默认值   
 楼主| 吃肉的考拉 发表于 2014-4-21 22:48 | 显示全部楼层
zhangmangui 发表于 2014-4-21 22:41
你看看  MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

MAXSIZE是100   数组里初始化全是'\0'
 楼主| 吃肉的考拉 发表于 2014-4-21 22:52 | 显示全部楼层
zhangmangui 发表于 2014-4-21 22:41
你看看  MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 吃肉的考拉 发表于 2014-4-22 11:14 | 显示全部楼层
吃肉的考拉 发表于 2014-4-21 22:52
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
Uint16 long_size(unsigned char *str)
{
        Uint16 cnt = 0;

你送入一个字符数组    在数组的最后一位中存入‘\0’试试
 楼主| 吃肉的考拉 发表于 2014-4-24 10:13 | 显示全部楼层
zhangmangui 发表于 2014-4-22 23:27
你送入一个字符数组    在数组的最后一位中存入‘\0’试试

我原来是c2812的gel文件,现在改成f2812的可以了,不知道是不是这个原因
zhangmangui 发表于 2014-4-24 22:28 | 显示全部楼层
吃肉的考拉 发表于 2014-4-24 10:13
我原来是c2812的gel文件,现在改成f2812的可以了,不知道是不是这个原因

不会吧   GEL只是辅助CCS的语言而已  
怎么可能与这个有关系呢?
msblast 发表于 2014-4-25 09:27 | 显示全部楼层
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。
 楼主| 吃肉的考拉 发表于 2014-4-25 17:21 | 显示全部楼层
msblast 发表于 2014-4-25 09:27
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。


PDU编码,但现在不是接受不接受短信的问题,是直接给个字符串,调用函数识别不了字符
msblast 发表于 2014-4-25 17:38 | 显示全部楼层
吃肉的考拉 发表于 2014-4-25 17:21
PDU编码,但现在不是接受不接受短信的问题,是直接给个字符串,调用函数识别不了字符 ...

strlen只能处理ASCII码
msblast 发表于 2014-4-25 18:09 | 显示全部楼层
msblast 发表于 2014-4-25 09:27
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

既然知道是PDU码就先解码得到有效信息再处理。
解码之后得到的文本编码应该为Unicode码,需要确认。
对于Unicode编码的文本,得用对应的字符函数来处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

58

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部