简单实现
char *my_strcpy(char *dest_str,char *sour_str);
#include <stdio.h>
//函数的声明
char *my_strcpy(char *dest_str,char *sour_str);
//函数的具体实现
char *my_strcpy(char *dest_str,char *sour_str)
{
//一般不建议对传入的指针参数直接进行使用
char *pstr1 = dest_str;
char *pstr2 = sour_str;
//判断是否满足条件 (防御式编程)
if(dest_str == NULL || sour_str == NULL || dest_str == sour_str)
return dest_str;
//执行
while(*pstr2){
*pstr1++ = *pstr2++;
}
*pstr1 = '\0';
//打印
printf("%s",dest_str);
return dest_str;
}
int main(int argc,char *argv[])
{
char *str1 = "hello.world\n";
char str2[100]={0};
my_strcpy(str2,str1);
re
简单的实现
char *my_strncpy(char *dest_str, char *sour_str ,int n);
#include <stdio.h>
//函数声明
char *my_strncpy(char *dest_str, char *sour_str ,int n);
//函数具体实现按
char *my_strncpy(char *dest_str, char *sour_str ,int n)
{
char *pstr1 = dest_str;
char *pstr2 = sour_str;
int size = sizeof(sour_str);
int i ;
//是否满足条件
if(dest_str == NULL || sour_str == NULL || size < n)
return NULL;
// 执行
for(i = 0 ;i < n ;++i)
{
*pstr1++ = pstr2[i];
}
*pstr1 = '\0';
//输出
printf("%s\n",dest_str);
return dest_str;
}
int main(int argc,char *argv[])
{
int n;
char *str1 = "hello,world!";
char str2[100] = {0};
char *str;
printf("please input values n: ");
scanf("%d",&n);
str = my_strncpy(str2,str1,n);
if(str == NULL)
printf("your input error\n");
return 0;
}