头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
// 计算字符串长度 strlen
int Mystrlen(const char * str);
// 字符串对比 strcmp
bool Mystrcmp(char * str1, char * str2);
// 字符串拷贝 strcpy
bool Mystrcpy(char * str1, char * str2,int length);
// 字符串拼接 strcat
bool 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++); //取值循环找到 0
return (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;
}