string 之 strcpy函数
更多干货请移步我的公众号「aCloudDeveloper」,专注技术干货分享,期待与你相遇。
Author: bakari Date: 2012/8/9
近两年好多的IT公司喜欢拿一些库函数来考,string函数库当然是首选,除此之外,像qsort,STL里的函数也经常火。虽然这些函数咋一看很简单,但有一些细节问题还是很能说明问题,这些细节问题往往就是公司最看重的。吾将之整理作为总结和共享。
下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”系列述之。
下面包括strcpy , strncpy函数
1 /******************************************************* 2 * strcpy and strncpy 3 * !! Note: *desStr = '\0' Don't forget! 4 *******************************************************/ 5 char * Mystrcpy(char *desStr, const char *srcStr){ 6 assert(NULL != desStr && NULL != srcStr); 7 char *address = desStr; 8 9 while( (*desStr ++ = *srcStr ++)); //此条语句与下面的功能一致(值得品味) 10 //while( (*desStr ++ = *srcStr ++) != '\0'); 11 //while( (*srcStr ++ ) != '\0' ){ 12 // *desStr ++ = *srcStr; 13 //} 14 //while( *srcStr ) 15 // *desStr++ = *srcStr++; 16 *desStr = '\0'; 17 18 return address; 19 } 20 21 char * Mystrncpy(char *desStr,const char *srcStr,size_t nCount){ 22 assert(NULL != desStr && NULL != srcStr && nCount <= strlen(srcStr)); 23 char *address = desStr; 24 25 while( (nCount --) && (*desStr ++ = *srcStr ++) ); 26 //while(nCount --) 27 // *desStr ++ = *srcStr ++; 28 *desStr = '\0'; 29 30 return address; 31 }
stay hungry
stay foolish
----jobs
希望多多烧香!