終端文字との比較なんていらんだろ
while((*s++=*d++)){} で十分じゃねーの?