#strcat的模拟实现
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <assert.h> char *my_strcat(char *str1,const char* str2) { assert(str1 && str2); while (*str1 != '\0') { str1++; } while (*str2 != '\0') { *str1 = *str2; str1++; str2++; } *str1 = '\0'; //别忘了补\0 return str1; //这里要有返回值,不然会报错,因为 //我们定义的就有返回值,模拟的是库函数 } int main() { char str1[20] = "hello "; char str2[] = "world!"; my_strcat(str1, str2); printf("str1 = %s", str1); return 0; }
#strcmp的模拟实现
#include <stdio.h> #include <assert.h> int my_strcmp(const char* str1, const char* str2) { assert(str1 && str2); //断言,如果不符合括号里的条件,停止运行并报错 while (*str1 && *str2 && (*str1 == *str2)) { str1++; str2++; } return *str1 - *str2; } int main() { char str1[] = "a ha ha~"; char str2[] = "a ha ha~"; int ret = my_strcmp(str1, str2); if (ret > 0) printf("大于\n"); else if (ret < 0) printf("小于\n"); else printf("等于\n"); return 0; }