c语言strchr函数内容,c strchr函数_c语言strchr函数_strchr函数用法

4abe96f9bb639ba040150b79641c1092.png

各位看官们,大家好,上一回中咱们说的是字符串比较的例子,这一回咱们说的例子是:字符串查找。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,在C语言的标准库中为我们提供了字符串查找函数,我们只需要包含string.h头文件就可以使用字符串查找函数。这点和字符串比较函数一样,标准库为我们提供了三个字符串查找函数:strchr,strrchr和strstr。当然了,标准库中也有一些类似查找功能的函数,但是这些函数的使用概率比较小,因此我们就不详细介绍了。接下来我们分别介绍查找函数的用法及其注意事项。

strchr函数原型:char * strchr(const char *s1, int c)

strchr函数用法:它把c转换成char类型的字符,然后在s1中查找该字符,如果找到该字符,那么返回该字符在字符串中第一次出现的位置,如果没有找到,那么返回空指针。

strchr注意事项:它把int类型的变量强制转换成char类型的变量,其实是按照字符的ASCII码值进行转换。比如97会被转换为字符’a’。我们想查找某个字符时,只需要输入它的ASCII码值就可以。另外,在查找过程中,字符串的小尾巴也会当作字符串的一部分,所以可以在字符串中找到空字符的位置。

我们举一个实际的例子来说明,在程序中定义如下字符串:

char *s1 = "abcdABCDabcd";

char *s2 = "abc";

int c = 97;

我们使用strchr函数来查找c在字符串s1中的位置,查找的结果如下:

a(97) is found in abcdABCDabcd, and location is 1.

(0) is found in abcdABCDabcd, and location is 13. //" \0 can't be show"

这里的字符串比较简单,大家一眼就可以看出来字符a在字符串s1中,而且位于第一位。我们再和程序的运行结果去对比,显然是一致的。另外,也可以在字符串中查找空字符,也就是字符串的小尾巴,查找的结果位于字符串末尾,这点我们可以在上面的程序运行结果中看到。

strrchr函数原型:char * strrchr(const char *s1, int c)

742a9cdc8b21d237151f7cbc5ad6aacf.png

strrchr函数用法:它把c转换成char类型的字符,然后在s1中查找该字符,如果找到该字符,那么返回该字符在字符串中最后一次出现的位置,如果没有找到,那么返回空指针。这点和strchr正好相反。

strrchr注意事项:它和strchr的注意事项相同,因此就不详细说明了。

我们举一个实际的例子来说明,还是使用刚才的字符串:

char *s1 = "abcdABCDabcd";

char *s2 = "abc";

int c = 97;

我们使用strrchr函数来查找c在字符串s1中的位置,查找的结果如下:

a(97) is found in abcdABCDabcd, and re-location is 9.

(0) is found in abcdABCDabcd, and re-location is 13. //" \0 can't be show"

大家可以看到,字符串s1中包含两个a字符,一个位于字符串的第一位,另外一个位于字符串的第九位。这和程序的运行结果是一致的。另外,字符串s1中只有一个空字符,而且位于字符串的末尾,我们再和程序的运行结果去对比,这显然也是一致的。

大家或许已经发现了,我们刚才使用的两个字符串查找函数,都是用来查找单个字符的,有没有查找整个字符串的函数?答案是肯定的。标准库为我们提供了strstr函数,接下来我们详细介绍它。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-34116-1.html

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值