实现字符串的链接[ strcat ]
#include<stdio.h>
#include<assert.h>
char *Mystrcat(char *des,const char *src)
{
assert(des != NULL && src != NULL);
char *p = des;
while(*des != '\0') //判断des的'\0'
{
des++; //在没有找到des的'\0'时,des++来寻找des的’\0’
}
while(*des++ = *src++); //复制
return p;
}
int main()
{
//Mystrcat("abcd","xyz");//error1.写错误
//char str1[10] = "hello";
//Mystrcat(str1,"world"); //error2.越界
char str1[100] = "hello ";
Mystrcat(str1,"world");
printf("%s\n",str1);
//error1.写错误:试图修改字符串常量的值[字符串常量不可改]
//error2.字符串越界(危险!):定义str1[100],当定义str[10]时,内存不够程序崩溃!
return 0;
}
在字符串中崩溃原因[ 主要 ]:
1、试图修改字符串常量的值[ 字符串常量不可改 ]
2、越界[ 危险!]
字符数组,有\0,所以也是字符串