*str1 为0,也就是\0,非0都会执行括号内,不只是1
while(*str1)相当于while((*str1)!=0)那么当*str1==0的时候就结束了
while(str1[i])其实就是while(str1[i]!=0)在c语言中!=0是可以省略不写的,在字符串循环中,经常这么写因为字符串的结尾是0,所以不等于0时循环,等于0时就停止了
如果str1的值是1,执行while括号内的语句,否则跳出