因为你没有给str2初始化,未初始化的变量里面不一定都是0,里面的数据是未知的 ,所以正好你把str1的内容复制给str2的时候str2里面str2[i]正好是个问号。解决方法:1、char str2[80] = {0};这样定义 2、在printf之前加一句str2[i] = '\0';