打印
[DSP编程]

计算字符串长度

[复制链接]
1376|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的字符串数组里都是零 怎么调用测长度的函数得到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数组送入东西吧   
查看到的还是默认值   

使用特权

评论回复
5
吃肉的考拉|  楼主 | 2014-4-21 22:48 | 只看该作者
zhangmangui 发表于 2014-4-21 22:41
你看看  MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

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

使用特权

评论回复
6
吃肉的考拉|  楼主 | 2014-4-21 22:52 | 只看该作者
zhangmangui 发表于 2014-4-21 22:41
你看看  MAXSIZE是多少啊    如果是512那就对着呢
你没有给SCiRxData数组送入东西吧   
查看到的还是默 ...

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

使用特权

评论回复
7
吃肉的考拉|  楼主 | 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

使用特权

评论回复
8
zhangmangui| | 2014-4-22 23:27 | 只看该作者
吃肉的考拉 发表于 2014-4-22 11:14
Uint16 long_size(unsigned char *str)
{
        Uint16 cnt = 0;

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

使用特权

评论回复
9
吃肉的考拉|  楼主 | 2014-4-24 10:13 | 只看该作者
zhangmangui 发表于 2014-4-22 23:27
你送入一个字符数组    在数组的最后一位中存入‘\0’试试

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

使用特权

评论回复
10
zhangmangui| | 2014-4-24 22:28 | 只看该作者
吃肉的考拉 发表于 2014-4-24 10:13
我原来是c2812的gel文件,现在改成f2812的可以了,不知道是不是这个原因

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

使用特权

评论回复
11
msblast| | 2014-4-25 09:27 | 只看该作者
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

使用特权

评论回复
12
吃肉的考拉|  楼主 | 2014-4-25 17:21 | 只看该作者
msblast 发表于 2014-4-25 09:27
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。


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

使用特权

评论回复
13
msblast| | 2014-4-25 17:38 | 只看该作者
吃肉的考拉 发表于 2014-4-25 17:21
PDU编码,但现在不是接受不接受短信的问题,是直接给个字符串,调用函数识别不了字符 ...

strlen只能处理ASCII码

使用特权

评论回复
14
msblast| | 2014-4-25 18:09 | 只看该作者
msblast 发表于 2014-4-25 09:27
接收短信,应该先搞清楚编码吧。
确定是ASCII编码呢还是其他什么编码。

既然知道是PDU码就先解码得到有效信息再处理。
解码之后得到的文本编码应该为Unicode码,需要确认。
对于Unicode编码的文本,得用对应的字符函数来处理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

58

帖子

0

粉丝