模拟实现strncpy
- 主要思想:
将一个字符串的前num个字符拷贝到另一个字符数组中,并以 ‘\0’ 结尾. - 前num个字符的拷贝
for (size_t i = 0; i < num; i++){
*(destination++) = *(source++);
}
- 源代码
#define _CRT_SECURE_NO_WARNINGS
#define _crt_secure_no_warnings
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* mystrncpy(char* destination, const char* source, size_t num){
if (destination == NULL || source == NULL){
return NULL;
}
char* dest = destination;
for (size_t i = 0; i < num; i++){
*(destination++) = *(source++);
}
*destination = '\0';
return dest;
}
int main(){
char dest[1024] = "";
char source[] = "I am a student.";
if ((dest) != NULL && (*source) != '\0'){
printf("%s\n", strncpy(dest, source, 5));
printf("%s\n", mystrncpy(dest, source, 7));
}
system("pause");
return 0;
}
- 运行结果