当前位置: 代码迷 >> 综合 >> day(16) 字符串函数的模拟实现(strcat),(strstr)。
  详细解决方案

day(16) 字符串函数的模拟实现(strcat),(strstr)。

热度:18   发布时间:2023-11-26 18:12:00.0


//字符串拷贝
//void my_string(char* p1, char* p2)
//{
//    char* tmp = p1;
//    while (*p1++ = *p2++)
//    {
//        ;
//    }
//
//    printf("%s \n", tmp);
//}
//
//int  main()
//{
//    char arr[] = "xxxxxxxxx";
//    char arr1[] = "sdada";
//    my_string(arr, arr1);
//    printf("%s \n", arr);
//    system("pause");
//    return 0;
//}

//模拟实现strcmp

//int  my_strcmp(char* p1, char* p2)
//{
//    while (*p1 == *p2)
//    {
//        if (*p1 = '\0')
//        {
//            return 0;
//        }
//        p1++; 
//        p2++;
//    }
//    return *p1 - *p2;
//
//}
//int main()
//{
//    char arr[] = "sdasdasdas";
//    char arr1[] = "sadasdasdasd";
//
//    /*int  ret=strcmp(arr, arr1);*/
//    /*int ret = strncmp(arr, arr1, 5);*/
//    int ret = my_strcmp(arr, arr1);  //>0  可不一定是1  是大于一的随机数;
//    printf("%d\n", ret);
//    system("pause");
//    return 0;
//}


//模拟实现 strstr()   返回值是char*

//char* my_strstr(char* p1, char* p2)
//{
//    
//    
//    while (*p1 != '\0')
//    {
//        char* p11 = p1;
//        char* p22 = p2;
//        while (*p11 == *p2)
//        {
//            p11++;
//            p2++;
//        }
//        if (*p2 == '\0')
//        {
//            return p1;
//        }
//        
//        
//
//        p1++;
//    }
//    return NULL;
//}
//
//int main()
//
//{
//    char arr[] = "dfsdfds";
//    char arr2[] = "dfd";
//    /*char* tmp = strstr(arr, arr2);*/
//
//    char*tmp=my_strstr(arr, arr2);
//    if (tmp != NULL)
//    {
//        printf("%s\n", tmp);
//    }
//    
//
//
//    system("pause");
//    return 0;
//}
//


char* my_strtok(char* arr, char* arr1)
{
    char* tmp = NULL;

    for (tmp=strtok(arr, arr1);tmp!=NULL; tmp=strtok(NULL, arr1))
    {
        printf("%s\n", tmp);
    }

}
int main()
{

    char arr[] = "sdasd@qq.com";     //strtok  每工作一次 会将字符串中的特定字符改变为\0 并且返回分割之前首元素的地址;会改变源字符串 应该拷贝使用   如果往后查找不到 返回null

    char*tmp=my_strtok(arr, arr1);

    //printf("%s", arr);


    system("pause");
    return 0;
}

  相关解决方案