C语言判断字符串是否以str2开头代码

 更新时间:2017年05月21日 09:01:57   作者:青儿哥哥  
这里给大家分享的是一个使用C语言实现的判断字符串中是否以某字符开头或者结尾的代码,非常的简单实用,希望大家能够喜欢

代码很简洁,功能也很简单,这里就不多废话了,直接把代码奉献给大家,有需要的小伙伴可以来参考下

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

/**判断str1是否以str2开头
 * 如果是返回1
 * 不是返回0
 * 出错返回-1
 * */
int is_begin_with(const char * str1,char *str2)
{
  if(str1 == NULL || str2 == NULL)
    return -1;
  int len1 = strlen(str1);
  int len2 = strlen(str2);
  if((len1 < len2) || (len1 == 0 || len2 == 0))
    return -1;
  char *p = str2;
  int i = 0;
  while(*p != '\0')
  {
    if(*p != str1[i])
      return 0;
    p++;
    i++;
  }
  return 1;
}

/**判断str1是否以str2结尾
 * 如果是返回1
 * 不是返回0
 * 出错返回-1
 * */
int is_end_with(const char *str1, char *str2)
{
  if(str1 == NULL || str2 == NULL)
    return -1;
  int len1 = strlen(str1);
  int len2 = strlen(str2);
  if((len1 < len2) || (len1 == 0 || len2 == 0))
    return -1;
  while(len2 >= 1)
  {
    if(str2[len2 - 1] != str1[len1 - 1])
      return 0;
    len2--;
    len1--;
  }
  return 1;
}

欢迎大家自由发挥扩展下

相关文章

  • C语言数据结构之二叉树详解

    C语言数据结构之二叉树详解

    二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式。本文将通过示例详细讲解一下二叉树,需要的可以参考一下
    2022-03-03
  • c++ 网络库asio的优势

    c++ 网络库asio的优势

    这篇文章主要介绍了c++ 网络库asio的优势,帮助大家更好的利用c++开发服务端程序,感兴趣的朋友可以了解下
    2020-10-10
  • C++移动语义详细介绍使用

    C++移动语义详细介绍使用

    首先,移动语义和完美转发这两个概念是在C++的模板编程的基础上,新增的特性,主要是配合模板来使用。本篇会从C++的值类型,到移动拷贝与移动赋值来理解移动语义与完美转发
    2023-01-01
  • C语言超详细讲解顺序表的各种操作

    C语言超详细讲解顺序表的各种操作

    大家好,今天给大家带来的是顺序表,我觉得顺序表还是有比较难理解的地方的,于是我就把这一块的内容全部整理到了一起,希望能够给刚刚进行学习数据结构的人带来一些帮助,或者是已经学过这块的朋友们带来更深的理解,我们现在就开始吧
    2022-05-05
  • C++使用Kruskal和Prim算法实现最小生成树

    C++使用Kruskal和Prim算法实现最小生成树

    这篇文章主要介绍了C++使用Kruskal和Prim算法实现最小生成树,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • return和break的区别解析

    return和break的区别解析

    这篇文章主要介绍了return和break的区别解析,需要的朋友可以参考下
    2014-02-02
  • C语言数据类型转换实例代码

    C语言数据类型转换实例代码

    本文主要介绍C 语言数据类型转换,这里通过代码实例进行详解,这是C语言基础部分,需要的朋友可以参考下
    2016-07-07
  • C/C++位段超详细整理大全

    C/C++位段超详细整理大全

    以位为单位来定义结构体中的成员变量所占的空间内存,含有位段的结构体称为位段结构,这篇文章主要给大家介绍了关于C/C++位段的相关资料,需要的朋友可以参考下
    2024-01-01
  • 深入HRESULT与Windows Error Codes的区别详解

    深入HRESULT与Windows Error Codes的区别详解

    本篇文章是对HRESULT与Windows Error Codes的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ requires关键字简单介绍

    C++ requires关键字简单介绍

    requires 是 C++20 中引入的一个新关键字,用于在函数模板或类模板中声明所需的一组语义要求,它可以用来限制模板参数,类似于 typename 和 class 关键字,这篇文章主要介绍了C++ requires关键字简介,需要的朋友可以参考下
    2023-05-05

最新评论