1.实现strcpy 字符串拷贝
通俗点就是:strptr(a,b)将b的值给a
2.实现strcat 字符串连接
连接两个字符串
strcpy:
把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*。
strcat先去掉str1的结束符后再把str2接连到str1末尾
#include<stdio.h>
#include<stdlib.h>
char *my_strcpy(char *dest,const char *scr)
{
char *ret = dest;//我们无法改变常量指针的指向,所以构建临时变量在返回
while(*dest++ = *scr++);
return ret;//返回dest 还是返回ret都一样,因为我们已经通过指针ret间接的修改了字符串
}
int main()
{
char des[] = "hello world";
const char sc[] = "hi baby";
my_strcpy(des,sc);
printf("%s",des);
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char *_strcat(char *dst, const char *src)
{
char* tmp = dst;
while (*tmp)
tmp++;
while (*tmp++ = *src++);
return tmp;
}
int main()
{
char b[] = "hello ";
char d[] = "world";
_strcat(b, d);
printf("%s\n", b);
system("pause");
return 0;
}
char *p = "hi world";
双引号引起来的字符串存放在静态区(只读区)
不能通过p存放的地址修改,会使程序崩坏
应该写为 char p[] = "hi world";