strchr和strrchr函数及用法,C语言strchr和strrchr函数详解
其中,strchr 函数原型的一般格式如下:
char *strchr(const char *s, int c);
它表示在字符串 s 中查找字符 c,返回字符 c 第一次在字符串 s 中出现的位置,如果未找到字符 c,则返回 NULL。也就是说,strchr 函数在字符串 s 中从前到后(或者称为从左到右)查找字符 c,找到字符 c 第一次出现的位置就返回,返回值指向这个位置,如果找不到字符 c 就返回 NULL。
相对于 strchr 函数,strrchr 函数原型的一般格式如下:
char *strrchr(const char *s, int c);
与 strchr 函数一样,它同样表示在字符串 s 中查找字符 c,返回字符 c 第一次在字符串 s 中出现的位置,如果未找到字符 c,则返回 NULL。但两者唯一不同的是,strrchr 函数在字符串 s 中是从后到前(或者称为从右向左)查找字符 c,找到字符 c 第一次出现的位置就返回,返回值指向这个位置。下面的示例代码演示了两者之间的区别:
int main(void) char str[] = I welcome any ideas from readers, of course. char *lc = strchr(str, o printf( strchr: %s/n , lc); char *rc = strrchr(str, o printf( strrchr: %s/n , rc); return 0; }
对于上面的示例代码,strchr 函数是按照从前到后的顺序进行查找,所以得到的结果为 ome any ideas from readers,of course. 而 strrchr 函数则相反,它按照从后到前的顺序进行查找,所以得到的结果为 ourse. 。
示例代码运行结果为:
strchr: ome any ideas from readers, of course.
strrchr: ourse.
最后还需要注意的是,为什么函数的 c 参数是 int 类型,而不是 char 类型呢?
其实原因很简单,这里用的是字符的 ASCII 码(因为每个字符都对应着一个 ASCII 码),这样在传值的时候既可以传 char 类型的值,又可以传 int 类型的值(0~127)。
21639.html
相关文章
- C语言文件读写操作(详解)
- 【C语言:内存函数】详解
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
- [C语言]扫雷游戏(Mine Sweeper)
- C语言中的字符数组和字符串详解编程语言
- [C语言] 数据结构-预备知识跨函数使用内存详解编程语言
- [编程] C语言Linux系统编程-等待终止的子进程(僵死进程)详解编程语言
- [linux] C语言Linux系统编程进程基本概念详解编程语言
- [编程] C语言变量和数据类型总结练习题详解编程语言
- C语言之结构体详解编程语言
- C语言之函数的声明详解编程语言
- C语言之带有返回值的函数详解编程语言
- C语言_初步了解一下指针详解编程语言
- printf函数和scanf函数,C语言printf函数和scanf函数详解
- 函数的返回值,C语言函数返回值详解
- 数组名作为函数参数传递,C语言数组作为函数参数传递详解
- 二维数组的定义、初始化和输出,C语言二维数组详解
- 函数间传递动态内存,C语言函数间动态内存的传递详解
- memset函数及其用法,C语言memset函数详解
- 条件编译,C语言条件编译详解
- C语言左值与右值详解
- 字符串查找函数,C语言字符串查找函数详解
- feof和ferror函数,C语言feof和ferror函数详解
- fseek、ftell和rewind函数,C语言fseek、ftell和rewind函数详解
- C语言求回文数(详解版)
- Linux下C语言环境编程指南(linuxc环境编程)
- 用Linux C语言编写的流量统计程序(linuxc流量统计)
- 如何在C语言中嵌入MySQL数据库(c 中mysql 嵌入)
- 关于C语言指针赋值的问题详解
- C语言栈的表示与实现实例详解