模拟实现strlen,strcpy,strcat函数
1.strlen:求字符串长度函数
方式1:
int my_strlen(const char * str)
{
int count = 0;
while(*str)
{
count++;
str++;
} r
eturn count;
}
方式2:
int my_strlen(const char * str)
{
if(*str == '\0')
return 0;
else
return 1+my_strlen(str+1);
}
方式3:
int my_strlen(char *s)
{
char *p = s;
while(*p != ‘\0’ )
p++;
return p-s;
}
2.strcpy字符串拷贝函数
dest字符数组空间必须足够容纳的下src。并且不重叠。
char* my_strlen(char* dest, const char* src) {
if (dest == NULL || src == NULL) {
return NULL;
}
char* res = dest;
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return res;
}
3.strcat字符串拼接函数
就是把src字符数组接在dest后边,dest的结束符被替换成src第一个字符,最后保留src的结束符,并且dest空间足够大可以容纳的下src。
dest和src不可以重叠。
拼接完之后src不变,dest变得更大了。
char* my_strcat(char* dest, const char* src) {
if (dest == NULL || src == NULL) {
return NULL;
}
int cur = 0;
while (dest[cur] != '\0') {
cur++;
}
int i = 0;
while (src[i] != '\0') {
dest[cur + i] = src[i];
i++;
}
dest[cur + i] = '\0';
return dest;
}