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

2023-05-16

是不是最后一个放/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博客

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐