目录
1.strcpy函数
1.1函数介绍
strcpy是覆盖拷贝,就是将src中的元素(包括’\0‘)全部拷贝到dest中。
注:必须考虑dest的空间>=src的空间
1.2函数使用
#include <stdio.h>
#include <string.h>
int main()
{
char dest[5] = "aksdh";
char src[] = "ksh";
strcpy(dest, src);
printf("%s",dest);
return 0;
}
模拟实现
#include <stdio.h>
#include <string.h>
#include <assert.h>
char* my_strlen(char* dest, const char* str)
{
assert(dest && str);//保证不为null
char* c = dest;
while (*dest++ =*str++)
{
;
}
return c;
}
int main()
{
char str1[] = "acdfff";
char str2[] = "budggg";
printf("%s", my_strlen(str1, str2));
return 0;
}
2.strcat函数
2.1函数介绍
strcat是追加拷贝,必须保证目标空间足够大
2.2函数使用
#include <stdio.h>
#include <string.h>
int main()
{
char dest[10] = "aksdh";
char src[] = "ksh";
strcat(dest, src);
printf("%s",dest);
return 0;
}
模拟实现
#include <stdio.h>
#include <string.h>
#include <assert.h>
char* my_strcat(char* dest, const char* str)
{
assert(dest && str);
char* c = dest;
while (*dest)
{
dest++;
}
while (*dest++ =*str++)
{
;
}
return c;
}
int main()
{
char str1[20] = "acdfff";
char str2[] = "budggg";
printf("%s", my_strcat(str1, str2));
return 0;
}
3.strcmp函数
3.1函数介绍
strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字
3.2函数使用
#include <stdio.h>
#include <string.h>
int main()
{
char dest[10] = "aksdh";
char src[] = "ksh";
int d=strcmp(dest, src);
printf("%d",d);
return 0;
}
模拟实现
#include <stdio.h>
#include <string.h>
#include <assert.h>
int my_strcmp(const char* dest, const char* str)
{
assert(dest && str);
while (*dest == *str)
{
dest++;
str++;
if (*dest == '\0')
return 0;
}
return *dest - *str;
}
int main()
{
char str1[] = "abcdfg";
char str2[] = "abcigc";
printf("%d", my_strcmp(str1, str2));
return 0;
}