长度不受限制的字符串函数:strcpy;;strcat; strcmp
长度受限制的字符串函数:strncpy;strncat;strncmp(相对安全)
memcpy - 完成不重叠的内存拷贝
memmove - 可以完成内存重叠的内存拷贝
字符操作函数的仿写
1、strstr
//主函数
int main()
{
char arr[] = "abcdefg";
char* ret = my_strstr(arr, "cde");
printf("%s\n", ret);
return 0;
}
//方法1
my_strstr(const char* str, const char* search)
{
assert(str && search);
char* ret = str;
int len_str = strlen(str);
int len_sea = strlen(search);
int j = 0;
for (j = 0; j < len_str - len_sea + 1; j++)
{
int i = 0;
for (i = 0; i < len_sea; i++)
{
if (*(ret + i) != *(search + i))
{
ret++;
break;
}
}
if (i == len_sea)
return ret;
}
return NULL; //没找到
}
//方法2
char* my_strstr(const char* str, const char* search)
{
char* p = str;
while (*p) // 直到str的\0处停止
{
char* q = search;
int count = 0;
//while (*(p + count) && *q)
//{
// if (*(p + count) != *q)
// {
// p++;
// break;
// }
// else
// {
// count++;
// q++;
// }
//}
while (*(p + count) && *q && (*(p + count) == *q))
{
count