目录
前言:
strcat是c语言的一个库函数,用于追加字符串。
char * strcat ( char * destination, const char * source );
参数destination为目标空间,source为源空间。返回类型为char*,说明返回一个指针。
思路:
字符串"abc"放入目标空间,字符串“def”放入源空间。
1 找到目标空间的'\0'
2 将src追加过去
3 将src的'\0'拷贝过去
代码实现:
1 找到目标空间的'\0'
int main()
{
char arr[10] = { "abc" };
char str[10] = { "def" };
my_strcat(arr, str);
return 0;
}
2 将src追加过去
char* my_strcat(char* dest, const char* src)
{
//1 先找到dest的'\0'
assert(dest && src);
while (*dest)
{
dest++;
}
//2 将src拷贝到dest中
while (*src)
{
*dest = *src;
dest++;
src++;
}
}
3 将src的'\0'拷贝过去,因为VS2022已经在dest中加入了’\0',这一步显得有点多余。
char* my_strcat(char* dest, const char* src)
{
char* ret = *dest;
//1 先找到dest的'\0'
assert(dest && src);
while (*dest)
{
dest++;
}
//2 将src拷贝到dest中
while (*src)
{
*dest = *src;
dest++;
src++;
}
//3 将src的'\0'拷贝到dest中
*dest = *src;
return ret;
}
超级简洁代码优化:
char* my_strcat(char* dest, const char* src)
{
char* ret = *dest;
//1 先找到dest的'\0'
assert(dest && src);
while (*dest)
{
dest++;
}
//2 将src拷贝到dest中
while (*dest++ = *src++)
{
;
}
return ret;
}