头文件
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdbool.h>// 计算字符串长度 strlenint Mystrlen(const char * str);// 字符串对比 strcmpbool Mystrcmp(char * str1, char * str2);// 字符串拷贝 strcpybool Mystrcpy(char * str1, char * str2,int length);// 字符串拼接 strcatbool Mystrcat(char * str1, char * str2);//字符串半段是否包含子串 ,并且返回第一次出现的位置 strstr
主文件
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "test.h"int Mystrlen(const char * str) //计算字符长度{const char * eos =str;while(*eos++); //取值循环找到 0return (eos - str -1);}bool Mystrcmp(char * str1, char * str2) //判断字符是否相等{int len1=Mystrlen(str1); //Mystrlen 计算字符串长度int len2=Mystrlen(str2);if(len1!=len2){ //先判断字符串长度 相等return false;}for(size_t i=0; i< len1;i++){if(*str1 != *str2){return false;}*str1++;*str2++;}return true;}bool Mystrcpy(char * str1,char *str2,int length) //字符串拷贝{for(size_t i=0;i<length;i++){str1[i]=str2[i];}str1[length]='\0';return true;}bool Mystrcat(char * str1, char * str2) //字符串拼接{int a=Mystrlen(str1);int b=Mystrlen(str2);for(size_t i =0; i<b;i++){str1[a + i]=str2[i];}str1[a + b]='\0';return true;}int main(){// char *str = "abcdef";// int nRet = Mystrlen(str);// printf("%d\n",nRet);// char *str1 ="abcdef";// char *str2 ="abcdefg";// bool nRet = Mystrcmp(str1,str2);// if(nRet)// {// printf("_____-true-_____\n");// }// else// {// printf("_____-flase-_____\n");// }// char * str1 = "abcdefg";// char * str2= "abcdefg";// char str3[100];// Mystrcpy(str3,str1,10);// printf("%s",str3);char * str1 = "abcdefg";char * str2= "abcdefgh";char str3[100]={0}; //需要初始化Mystrcat(str3,str1);Mystrcat(str3,str2);printf("%s\n",str3);system("pause");return 0;}

