c语言有个很奇怪的情况,有时候我们使用循环给一个新的字符数组赋值时打印出来的字符串是乱码,明明赋值都没有错:
但是运行起来是这样的:
当循环次数大于等于3时:
最后经过测试发现:在某些编译器当循环小于等于3的次数时,循环赋值字符数组并不会给字符数组的末尾加上’\0’,才会导致这样的情况,解决这种问题也很简单,就是每次对字符数组赋值时在最后都加上’\0’就行了,如:
c语言有个很奇怪的情况,有时候我们使用循环给一个新的字符数组赋值时打印出来的字符串是乱码,明明赋值都没有错:
但是运行起来是这样的:
当循环次数大于等于3时:
最后经过测试发现:在某些编译器当循环小于等于3的次数时,循环赋值字符数组并不会给字符数组的末尾加上’\0’,才会导致这样的情况,解决这种问题也很简单,就是每次对字符数组赋值时在最后都加上’\0’就行了,如: