求教char[]的中数据所占的长度问题问题?

tianya320 2005-03-25 04:22:46
szBufDisplay[1000]中放的实际数据,数据中间是有可能会出现0。想知道数据的全长?
...全文
165 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cut9 2005-03-25
  • 打赏
  • 举报
回复
greenery(greenery),你要考虑清楚啊,你的办法不行的。
比如:我的数据: 0x01,0x02,0x03,0x00,0x00,0x00
6个字节,你那样求出来是3个字节,而且要先ZeroMemory buffer.

没有现成的API做这个事情的。




greenery 2005-03-25
  • 打赏
  • 举报
回复
对阿,倒着数一下第一次出现非0的地方,就是你整个字符串的长度拉。
tianya320 2005-03-25
  • 打赏
  • 举报
回复
cut9(切瓜玩)可行,我已经那样做了。我是想问有没有现成的api可调,与我输出的数字比一下。我感觉我数错了。当然,我的数据中有0,所以sizeof和strlen不行
kuailingtong 2005-03-25
  • 打赏
  • 举报
回复
如果是字符串的话,建议使用strlen(),来进行处理!
cut9 2005-03-25
  • 打赏
  • 举报
回复
oyljerry, 即使没有往szBufDisplay里头放数据, sizeof也返回1000的。
放了字符串比如“abc”进去,sizeof也返回1000的。
sizeof求的是这个空间的大小。
zky1982 2005-03-25
  • 打赏
  • 举报
回复
你的字符串怎么会有0呢,如果只是因为全角字符可能出现0的话,那么最多只有1个0
所以可以从前往后搜索连续2个0,找到的话就说明找到了数组尾部

否则就只能像前面说的,从后往前面找了
bobob 2005-03-25
  • 打赏
  • 举报
回复
szBufDisplay[1000]中放的实际数据,数据中间是有可能会出现0。想知道数据的全长?

字符的结尾就是靠0来判断,遇到0就是结束.否则,系统怎么知道你的字符传的第几个0是结束标志?
当然,自己写函数是可以实现的
oyljerry 2005-03-25
  • 打赏
  • 举报
回复
sizeof求数组长度
cut9 2005-03-25
  • 打赏
  • 举报
回复
即使没有给szBufDisplay放数据,sizeof也返回1000的。
你在外头纪录嘛!实在不行定义一个结构
struct
{
DWORD dwSize;
char szBufferDisplay[1000];
} BUFFDISP;

BUFFDISP buf = new BUFFDISP;
你加数据进来就设dwSize,把buf传给别人,别人也知道大小了。
gnixemos 2005-03-25
  • 打赏
  • 举报
回复
如果求第一个0前的长度,就用strlen
如果中间有许多0,但是靠头放,那就从1000开始倒循环,第一个不为0的位置就是结束位置
gnixemos 2005-03-25
  • 打赏
  • 举报
回复
sizeof阿

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧