在学编程的过程中有许许多多的库函数可以使用
比如常见的printf和scanf,或者更多功能的函数使用
比如strlen(测量长度),strcpy(复制字符串),strcmp(比较两个字符串是否相同),strcat(连接两个字符串),strstr(从某处读取到最后)接下来我一一展示我的方法,
1、strlen
size_t my_strlen(const char* arr)
{
assert(arr != NULL);
const char* start = arr;
while (*arr != '\0')
{
arr++;
}
return arr - start;
}
2、strcpy
char* my_strcpy(char* dst, const char* str)
{
assert(dst && str);
char* start = dst;
while (*dst++=*str++)
{ ;
}
return start;
}
3、strcmp
int my_strcmp(const char* ar1, const char* ar2)
{
int ret;
assert(ar1);
assert(ar2);
while (!(ret = *(unsigned char*)ar1 - *(unsigned char*)ar2) && *ar1)
{
ar1++;
ar2++;
}
if (ret > 0)
{
return 1;
}
else if (ret < 0)
{
return -1;
}
else {
return 0;
}
}
4、strcat
char* my_strcat(char* A, const char* B)
{
assert(A);
assert(B);
char* tmp =A;
while (*A)
{
A++;
}
while ((*A++ = *B++) != '\0')
{
;
}
return tmp;
}
5、strstr
char* my_strstr(const char* p1, const char* p2)
{
assert(p1 && p2);
while (*p1 != *p2)
{
p1++;
}
char* begin = p1;
int count = 0;
int flag = 1;
while (flag) {
if (*p1 == *p2)
{
p1++;
p2++;
count++;
}
else if (*p2 == '\0')
{
flag = 0;
}
else {
p2--;
begin++;
}
}
return begin;
}
综上,学的还是很愉快的^v^