发现问题
最近在调试C代码时,在解析字符串转ASCII码时,解析得到的ASCII码时,字符串前面都多了两个小方框:
刚开始,我还以为字符乱码了,后来还是被事实证明“放过的BUG终究放不会放过程序猿”,不得不重新对ASCII码详细解析
"Standard"的ASCII码是0x53 0x74 0x61 0x6E 0x64 0x61 0x72 0x64
而实际收到是0x00 0x00 0x53 0x74 0x61 0x6E 0x64 0x61 0x72 0x64
多了两个0x00,查资料,发现:
0x0是空字符,那怎么自定义一个前两个字符是空字符的字符串呢?
实践出真知
尝试编写代码,在字符串钱前面加两个空白字符,符合当前定义:
uint8_t Sring = "\0\0NonStandard"
运行:
总结
空白字符不止可以作为终止符,也可以作为空字符。