typedef unsigned long int size_c;
typedef struct {
char *src;
char *dest;
}test;
size_c my_strlen(const char *s){
int size;
if(s==NULL){return 0;}
for(size=0;*s!='\0';s++,size++);
return size;
}
char *my_strcpy(char dest[],const char *src){
int src_len,dest_len;
src_len=my_strlen(src);
dest_len=my_strlen(dest);
if(src_len > dest_len){ return NULL; }
char *temp;
temp=dest;
while(*src!='\0'){
*dest=*src;
dest++;
src++;
}
*dest='\0';
return temp;
}
int mys_trcmp(char *str1,char *str2){
int str1_len,str2_len;
str1_len=my_strlen(str1);
str2_len=my_strlen(str2);
if(str1_len < str2_len){ return -1; }
else if(str1_len > str2_len){ return 1; }
else{
while(*str1 != '\0'){
if(*str1 < *str2){ return -1; }
if(*str1 > *str2){ return 1;}
str1++;
str2++;
}
return 0;
}
}
char *my_strcat(char dest[],const char *src){
int i,dest_len;
dest_len=my_strlen(dest);
i=dest_len;
while(*src!='\0'){
dest[i]=*src;
src++;
i++;
}
dest[i]='\0';
return dest;
}
//查找字符
char *my_strchr(char *dest,char src){
int dest_len;
dest_len=my_strlen(dest);
while(*dest!='\0'){
if(*dest==src){
return dest;
}
dest++;
}
return NULL;
}
//查找子串
char *my_strstr(char *dest,char *src){
int src_len,dest_len;
src_len=my_strlen(src);
dest_len=my_strlen(dest);
if(src_len > dest_len){ return NULL; }
char *temp=NULL;
char *p=dest;
char *q=src;
while(*p!='\0'){
if(*p == *q){
temp=p;//记录子串首字母在目的串的位置
while(*q!='\0'){//检查是否是完整子串
if(*p != *q){ q=src; break;}
q++;
p++;
}
}
p++;
}
return temp;
}
网友评论