看CSDN上有人讨论面试题,其中一题,自己动手也了一下
#include <stdio.h> #define ASSERT(x) if((x)) return ; void strcpy(char* des, char* src) { ASSERT(!des || !src || !(*src)); *des = '\0'; des ++; src ++; while(*src != '\0') *(des ++) = *(src ++); *des = '\0'; src --; des --; while(*des != '\0') des --; *des = '0'; while(*des != '\0') *(des ++) = *(src --); } int main(int argc, char* argv[]) { char src[] = {"abcdefg"}; char des[20] = {0}; strcpy(des, src); printf("src:%s, des:%s", src, des); return 0; }