在不使用string.h头文件的前提下,实现字符串的复制
void my_strcpy(char* dest, char* str) {
while (*str != '\0') {
*dest = *str;
str++;
dest++;
}
*dest = *str;//这个是将str里的'\0'赋给dest里的'\0'
}
改进版
#include <stdio.h>
#include <assert.h>
void my_strcpy(char* dest, char* str) {
assert(dest != NULL);//断言
assert(str != NULL);
while (*dest++ = *str++) {
;
}
}
int main() {
char arr1[] = "###############";
char arr2[] = "bit";
my_strcpy(arr1, arr2);
printf("%s", arr1);
return 0;
}
进阶版
#include <assert.h>
char * my_strcpy(char* dest, const char* str) {
char* ret = dest;
assert(dest != NULL);//断言
assert(str != NULL);
//把str中的内容拷贝到dest中,包含字符'\0'
while (*dest++ = *str++) {
;
}
return ret;
}
int main() {
char arr1[] = "###############";
char arr2[] = "bit";
printf("%s", my_strcpy(arr1, arr2));
return 0;
}