题目描述:
写⼀个函数my_strcpy,实现拷贝字符串的功能,假设给定⼀个字符数组a,再给定⼀个字符数组b,将字符串a中的内容拷贝到字符串b中,拷贝内容包含字符串末尾的 \0 字符。
解法思路:
使用while 循环通过指针的方式逐⼀拷贝源字符串中的每⼀个字符,直到遇到字符串结束标志\0 ,然后将该标志也拷贝到目标字符串中。注意,如果源字符串为空,该函数直接返回,不进行任何操作。
解法代码:
#include <stdio.h>
void my_strcpy(char* dest, const char* src)
{
//写法1
// 拷⻉源字符串的内容到⽬标字符串中
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
// 拷⻉源字符串的结束标志
*dest = '\0';
/*写法2
while (*dest++ = *src++)
{
;
}
*/
}
int main()
{
char arr1[] = "hello bite";
char arr2[20] = { 0 };
//将字符串arr1中的内容拷⻉到字符串arr2中
my_strcpy(arr2, arr1);
//打印字符串arr2
printf("%s\n", arr2);
return 0;
}