#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<assert.h> //1.计数器的版本 //2.递归的版本 //3.指针-指针 //int print_len(const char* arr) //{ // int count = 0; //计数器 // assert(arr != NULL); // while (*arr !='\0') // { // count++; // arr++; // } // return count; //} char* my_strcat(char* dest,const char* src) { //hello_\0 arr1 //world\0 arr2 //1.找到目标字符串的\0 //2.源数据追加过去,包含\0 char* ret = dest; assert(dest != NULL); assert(src != NULL); while (*dest) // \0的ASSCII码是0 { dest++; } //2.源数据追加过去,包含\0 while (*dest++ = *src++) { ; } return ret;//返回目标空间的起始地址 } int main() { char arr1[20] = "hello \0########"; char arr2[] = "world"; char* ret = my_strcat(arr1, arr2);//字符串追加(连接) printf("%s\n", ret); return 0; }