C语言中查找字符在字符串中出现的位置的方法

 更新时间:2015年08月24日 11:26:47   投稿:goldensun  
这篇文章主要介绍了C语言中查找字符在字符串中出现的位置的方法,分别是strchr()函数和strrchr()函数的使用,需要的朋友可以参考下

C语言strchr()函数:查找某字符在字符串中首次出现的位置

头文件:#include <string.h>

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:

  char * strchr (const char *str, int c);

【参数】str 为要查找的字符串,c 为要查找的字符。

strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。

【实例】查找字符5首次出现的位置。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
  char *s = "0123456789012345678901234567890";
  char *p;
  p = strchr(s, '5');
  printf("%ld\n", s);
  printf("%ld\n", p);
  system("pause");
  return 0;
}

输出结果:

12016464
12016469

 

C语言strrchr()函数:查找某字符在字符串中最后一次出现的位置

头文件:#include <string.h>

strrchr() 函数用于查找某字符在字符串中最后一次出现的位置,其原型为:

  char * strrchr(const char *str, int c);

【参数】str 为要查找的字符串,c 为要查找的字符。

strrchr() 将会找出 str 字符串中最后一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

【返回值】如果找到就返回该字符最后一次出现的位置,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中第一次出现的位置,可以使用 strchr() 函数。

实例:查找字符5最后一次出现的位置。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
  char *s = "0123456789012345678901234567890";
  char *p;
  p = strrchr(s, '5');
  printf("%ld\n", s);
  printf("%ld\n", p);
  system("pause");
  return 0;
}

执行结果:

12999504
12999529

相关文章

  • C++ Sqlite3的使用方法

    C++ Sqlite3的使用方法

    这篇文章主要介绍了C++ Sqlite3的使用方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • CFileDialog设置多选的问题解决

    CFileDialog设置多选的问题解决

    前几天同事问我在CFileDialog中多选时按确定按钮后DoModal函数的返回值是IDCANCEL的问题解决
    2013-02-02
  • Qt读写ini文件之QSettings用法

    Qt读写ini文件之QSettings用法

    这篇文章主要为大家介绍了Qt读写ini文件之QSettings的使用方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Qt实现网易云音乐进度条效果

    Qt实现网易云音乐进度条效果

    这篇文章主要为大家详细介绍了Qt实现网易云音乐进度条效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • C语言实现扫雷游戏详解

    C语言实现扫雷游戏详解

    这篇文章主要为大家详细介绍了C语言实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • C++ sizeof 实例解析

    C++ sizeof 实例解析

    下面5个列子针对C++,没有涉及到sizeof字节对齐及基本数据类型即只针对C++特有,并且针对的是32位机
    2013-07-07
  • c语言实现MD5算法的项目实践

    c语言实现MD5算法的项目实践

    MD5用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一,本文主要介绍了c语言实现MD5算法,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • C语言文件操作详情(一)

    C语言文件操作详情(一)

    这篇文章主要介绍了C语言文件操作详情,主要讨论的是数据文件,通过处理的磁盘上的文件展开主题内容介绍,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-04-04
  • C++实现双向链表代码分析

    C++实现双向链表代码分析

    这篇文章主要介绍了C++实现双向链表代码分析,前面文章分析了单向链表,这篇文章就来给大家分享双链表的实现吧,需要的朋友可以参考一下
    2022-03-03
  • c++ vector 使用find查找指定元素方法

    c++ vector 使用find查找指定元素方法

    std::vector 是一个动态数组,用于存储同类型元素的序列,本文主要介绍了c++ vector 使用find查找指定元素方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03

最新评论