这些奇奇怪怪的字符是哪里来的捏

题目让求一个字符串里面同一个单词出现的次数。我把每个单词都放到一个字符串数组里面,输出时发现了一堆不知道从哪里来的奇怪字符。

img

img

img

这里是你字符数组初始化的时候错误了,仅定义而未初始化,那么该初值也就是随机的,在后续输入时,前面的字符被你的gets输入覆盖,但100个空间的剩余单位没有被初始化,从而出现『奇奇怪怪』的字符。

想要验证的话可以将string打印一下看看,你就可以发现问题了。

for(i = 0; i < 100; i++){
    printf("%c\n", string[i]);
}

解决方法是可以这样初始化

char str[100] = {};
char a[10] = {};
char b[20][10] = {{}};