strcpy的自实现
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
char firstName[30] = "jim";
char lastName[30] = "Green";
char* p = firstName;
char* q = lastName;
while (1)
{
if (*q != '\0')
*p = *q;
if (*q == '\0')
{
*p = *q;
break;
}
p++; q++;
}
printf("%s\n", firstName);
printf("%s\n", lastName);
return 0;
}
strcpy应用时的注意事项
#include "stdafx.h"
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
char src[] = "xxxx0000";
char dest[5]; //dest大小不够只有5 dest中要有足够的空间来保存拷贝内容
//本函数有一个特点 拷贝过程中连同'\0'一起拷贝
strcpy(dest, src); //将src给dest拷贝(越界拷贝)
printf("src=%s\n", src); //显示000
printf("dest=%s\n", strcpy(dest, src));//相当于dest
printf("dest=%s\n", dest);//显示xxxxoooo
char dest1[100];
char dest2[200];
//返回的 char* 指向dest,可以将函数嵌入其他函数作参数
//可以实现所谓的连等式,a=b=c;
strcpy(dest2, strcpy(dest1, src)); //实现连等
printf("dest2=%s\n", dest2);
printf("dest1=%s\n", dest1);
printf("src=%s\n", src);
//1.strcpy函数声明 char* strcpy(char* dest, char* src);
//2.虽然参数为俩个指针类型 但有时候不能直接用指针形式传递
//若发生改写只读内容会报错
//3.最好将strcpy函数理解为 char* strcpy(char dest[],char *src) 类型
//char* p = "China";
char* q = "American";
//strcpy(p, q); 会挂掉,因为系统将"China"编译成只读数据,不能更改
char p[100]; //将p定义成字符数组后,则可以赋值
strcpy(p, q);
printf("p=%s\n", p);
return 0;
}