
模拟实现:
指针:
- #include
- char* my_strncpy(char*dest,char*src,size_t num) {
- char* ret = dest;
- size_t i = 0;
- for (i = 0; i < num; i++) {
- *dest = *src;
- dest++;
- src++;
- }
- *dest = '\0';
- return ret;
- }
- int main() {
- char aim[50] = { 0 };
- char src[] = "abcdefg";
- my_strncpy(aim,src,3);
- printf("%s\n", aim);
- return 0;
- }
数组:
- #include
- char* my_strncpy(char* dest, char* src, size_t num) {
- char* ret = dest;
- size_t i = 0;
- for (;src[i]!='\0'&&i < num; i++) {
- /**dest = *src;
- dest++;
- src++;*/
- dest[i] = src[i];
- }
- //*dest = '\0';
- /*dest[i] = '\0';*/
- return ret;
- }
- int main() {
- char aim[50] = { 0 };
- char src[] = "abcdefg";
- my_strncpy(aim, src, 3);
- printf("%s\n", aim);
- return 0;
- }