first finish the function.
修改之前的写法在会造成先赋值再判断n的值，从而多打印一个字符。
而如果写成for(;n>0, *dest++ = *src++; --n)的形式则会造成断错误，原因不详.