C语言与字符串相关的查找函数

        查找一个字符的函数:

       
       char *strchr(char const *src, int ch);
       char *strrchr(char const *src, int ch);

       注意它们的第二个参数是一个整型而非char。strchr在字符串src中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符并不存在于字符串中,则返回NULL指针。strrchr功能与strchr基本一致,只是他所返回的是一个指向字符串中该字符最后一次出现的位置。看下面一个简单例子:

      char str[20] = "Hello there, honey.";
      char *ans, *r_ans;
      ans = strchr(str, 'h');   
      r_ans = strrchr(str, 'h');

         查找任何几个字符:

char *strpbrk( const char * string, const char * group);

       这个函数返回一个指向string中第一个匹配group中任何一个字符的字符位置。如果未找到匹配,返回一个NULL指针。下面这段代码中:

     char str[20] = "Hello there, honey.";
     char *ans;
     ans = strpbrk(str, "aeiou");

返回的位置是string+1,因为这个位置的字符'e'是第二个参数中的字符第一次出现的位置。

        查找一个子串:

     char *strstr(char const *s1, char const *s2);

        这个函数在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,该函数将返回一个NULL指针。如果s2是一个空字符串,函数就返回s1.

        查找标记:

       一个字符串中常常包括几个单独的部分,他们彼此被分隔开来。每次为了处理这些部分,你首先必须把他们从字符串中提取出来,这个任务仍是strtok函数的功能。它从字符串中隔离各个单独的成为标记(token)的部分,并丢弃分隔符。原型如下:

char *strtok(char *str, char const *sep);

strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个指向这个标记的指针。典型情况下,在第一次调用strtok时,向它传递一个指向字符串的指针,然后,这个函数被重复调用(第一个参数为NULL),直到它返回NULL为止。如下代码所示:

     
void print_tokens(char *line)
{
       static char whitespace[] = " \t\f\r\v\n";
       char *token;

       for (token = strtok(line, whitespace); token != NULL; token = strtok(NULL, whitespace))
            printf("Next token is %s\n", token);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值