40、字符串拷贝函数
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dst, const char* src)
{
assert(dst);
assert(src);
char* d = dst;
char* s = src;
while (*s != '\0')
{
*d++ = *s++;
}
*d = '\0';
}
int main()
{
const char* str = "hello,bit";
char ptr[20];
char* ret = my_strcpy(ptr, str);
printf("%s\n", ret);
return 0;
}
41、实现字符串连接,类似于strcat
#include<stdio.h>
#include<assert.h>
char* my_strcat(char* dst, const char* src)
{
assert(dst);
assert(src);
char* d = dst;
char* s = src;
while (*d != '\0')
{
d++;
}
while (*s != '\0')
{
*d++ = *s++;
}
*d = '\0';
return dst;
}
int main()
{
char str[20] = "hello ";
const char* ptr = "bit";
char* ret = my_strcat(str, ptr);
printf("%s\n", ret);
return 0;
}
42、实现字符串比较,类似于strcmp
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1,const char* str2)
{
assert(str1);
assert(str2);
char* s1 = str1;
char* s2 = str2;
while (*s1 != '\0' && *s2 != '\0')
{
if (*s1 > *s2)
{
return 1;
}
else if (*s1 < *s2)
{
return -1;
}
else
{
s1++;
s2++;
}
}
if (*s1 == '\0' && *s2 == '\0')
{
return 0;
}
if (*s1 == '\0')
{
return -1;
}
if (*s2 != '\0')
{
return 1;
}
}
int main()
{
const char* str1 = "hello";
const char* str2 = "hello";
int ret = my_strcmp(str1, str2);
printf("%d\n", ret);
return 0;
}
模拟一些字符串库函数(笔试常考)
最新推荐文章于 2021-09-20 19:32:41 发布