你的s1没有初始化,所以它里面是个随机数,它的第9位里存的就是8,你重启电脑后它会变你输出的时候没有判断到\0结束,而是把里面所有东西都打印,8也跟着打印了
输出循环判断用用 s1[i]!='\0'
三个问题,第一i没有初始化,应该令i=0,第二应该将c定义为char型,第三输出时循环判断条件应该改为str[i]!='\0'