目录
函数介绍:
函数声明:
具体使用:
注意事项:
字符串⾃⼰给⾃⼰追加,如何?
模拟实现strcat函数:
函数介绍:
被称为字符串的追加/链接函数,它的功能就是在一个字符串后面追加上另外一个字符串。
函数声明:
char *strcat(char *_Destination, const char *_Source)
具体使用:
#include <stdio.h>
#include <string.h>
int main()
{char arr1[30] = "hello";char arr2[] = "world";strcat(arr1, arr2);printf("%s\n", arr1);//追加字符串return 0;
}
输出结果:
注意事项:
- 源字符串必须以 '\0' 结束。
- ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。
- ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。
- ⽬标空间必须可修改。
和strcpy的原因一样,详细: http://t.csdn.cn/JW6kh
字符串⾃⼰给⾃⼰追加,如何?
int main()
{char arr1[30] = "hello";strcat(arr1, arr1);printf("%s\n", arr1);return 0;
}
答案是不行的!
strcat的本质:
- strcat在追加的时候会对目标字符串的\0进行覆盖,且追加的原理是把追加的字符串的字符一个一个挪到追加的空间中。
- 所以自己追加自己本质上是把自己的字符进行移动,但是这个移动的过程会覆盖掉原先的\0所以出错。
模拟实现strcat函数:
char* my_strcat(char* dest, const char* str)
{char* ret = dest;assert(*dest != NULL);assert(*str);//找到目的字符串里的'\0'while (*dest != '\0'){dest++;}//追加while (*dest++ = *str++){;}return ret;
}