还有我发现他们定的字符串数组长度一般是33,而不是32

是不是最后一个放/0





c语言将十进制数转换为16进制的函数_csu_yang的专栏-CSDN博客_c语言十进制转十六进制

像这放的是32位的MD5的数,定义的也是33长度的字符串

https://gitee.com/maxibooksiyi/linux_udp_tcp_maxi_test/blob/master/HTTP/hivisoion_projcet/digest/src/httpauth.c

确实需要多一位,不然可能会出问题,你要放2个字符,那么定义的时候就得char  qqq[3]  ,不然printf字符串的时候它没有检测到字符串结束的地方就可以把后面的也打出来,特别是你把原本一个字符串拆成两个的时候,你存储前面字符串正好只定义那么大小,你printf前面那部分字符串,因为后面的地址是连着的,所以后面的字符串也会打印出来。

下面终端yaw_char1字符串的打印应该也是出现这样的问题。

printf打印字符串的原理一个是这样,写个字符串名称就可以了,后面碰到/0才结束就完了,它也不用管字符串多长。。我估计

看这个就清楚明白了!!!

在C语言中,字符串总是以‘\0‘作为结尾_TYINY的博客-CSDN博客

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值