1.实现strcat函数:链接字符串
#include<stdio.h>
#include<string.h>
char *my_strcat(char *p,char const *q)
{
char *dea=p;
while(*p)
{
p++;
//*p指向dst的地址里的内容
} //p是指针,被赋值q,也就是p指向q所在的位置
/* while(*q)
{
*p=*q; //*p指向dst的地址里的空间被赋值
p++;
q++;
}
*p='\0'; */
strcpy(p,q);
return dea;
}
int main()
{
char dst[30]= "miss ";
char *src = "you";
char *ret=my_strcat(dst,src);
printf("%s",ret);
return 0;
}
函数原型:char *strcat(char *dst,char const *src);
注意:
将src字符串与dst连接,从'\0'处开始;
1:目标参数是一个字符数组;
2:字符数字应足够大;
2.实现strcpy函数:字符串复制
#include<stdio.h>
char *my_strcpy(char *a,char *q)
{
char *dst = a; /*必须要提前存储上a的首地址,否则最后没办法返回值,即使返回*/
// 也是字符串长度减一的地址。
while(*q)
{
*(a++)=*(q++);
}
*a='\0';
return dst ;
}
int main()
{
char *p = "hello zhang yu ";
char *brr="hello zhang yu hhhhh";
char arr[30]={0};
char *ret =my_strcpy(arr,p);
printf("%s\n",ret);
return 0;
}
函数原型:char *strcpy(char *dst,char const *src)
1.若参数src与dst在内存中出现重叠。结果未定义
2.因为dst将进行修改,所以他必须是个字符数组或一个指向动态分配内存的数组的指针。
-
**strcpy和strcat都返回它们第一个参数的一份拷贝,就是一个指向目标字符数组的指针,由于他们返回这种类型的值,所以你可以嵌套的调用这些函数
- strcat(strcpy (dst,src),”hello”)**