mystrcmp:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
int my_strcmp(const char *str1,const char *str2)
{
assert(str1 && str2);//保证数组有效性
while(*str1 == *str2)
{
if(*str1 == '\0')
{
return 0;
}
str1++;
str2++;
}
return (*str1 - *str2);
}
int main(int argc, char *argv[])
{
char arr1[] = "abcdef";
char arr2[] = "abcdo";
int ret = my_strcmp(arr1,arr2);
printf("ret = %d\n",ret);
return 0;
}
strcpy:拷贝
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
char* my_strcpy(char* dest,char* str)
{
assert(dest != NULL);
assert(str != NULL);
char* ret = dest;//保存首地址
while(*dest++ = *str++)
{
;
}
return ret;
}
int main(int argc, char *argv[])
{
char arr1[] = "abcdefg";
char arr2[] = "lklklk";
printf("arr1 = %s\n",arr1);
my_strcpy(arr1,arr2);
printf("arr1 = %s\n",arr1);
return 0;
}
strcat:拼接
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
char *my_strcat(char *dest,const char *str)
{
assert(dest);
assert(str);
char *ret = dest;
while(*dest != '\0') //找'\0'
{
dest++;
}
while(*dest++ = *str++)//追加,strcpy
{
;
}
return ret;
}
int main(int argc, char *argv[])
{
char arr1[30] = "abcdef";
char arr2[] = "lklklk";
puts(arr1);
my_strcat(arr1,arr2);
puts(arr1);
return 0;
}