/* *原型:extern char *strncpy(char *dest, const char *src, int n); *用法:#include <string.h> *功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 *说明: * 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。 * 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。 * src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 * 返回指向dest的指针。 *编程实现strncpy */ #include <cstdio> #include <cassert> char * _strncpy(char * dest, const char * src, int count) { assert((dest != NULL)&&(src != NULL)); char * ret = dest; while(count-- && *src!='\0') *dest++ = *src++; *dest = '\0'; return ret; } int main() { char str1[] = "To be or not to be"; char str2[40]; char str3[40]; _strncpy(str2,str1,sizeof(str1)); _strncpy(str3,str1,5); printf("str2 : %s\nstr3 : %s\n",str2,str3); getchar(); return 0; }