strchr strrchr

strchr :

函数原型:extern char *strchr(char *str,char character)

参数说明:str为一个字符串的指针,character为一个待查找字符。
        
所在库名:#include <string.h>
  
函数功能:从字符串str中寻找字符character第一次出现的位置。
  
返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。

其它说明:还有一种格式char *strchr( const char *string, int c ),这里字符串是以int型给出的

strrchr :

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

    参数说明:s为一个字符串的指针,c为一个待查找字符。
        
    所在库名:#include <string.h>
  
            函数功能:查找在s字符串中最后一次出现字符c的位置。
  
            返回说明:如果str中存在字符ch,返回出现ch的位置的指针;否则返回NULL
源码:

char * strrchr (const char *s, int c)

{
    register const char *found, *p;

    c = (unsigned char) c;

    //如果查找的字符是结束符,直接用strchr 函数返回结束符号的位置。

    if (c == '/0')
        return strchr (s, '/0');


    //返回值(查找的字符地址)赋初值,很重要。
    found = NULL;

    //从当前字符串超找字符c,并将返回指针赋给p,如果p不等于NULL,则执行循环。

    //如果p等于NULL,说明已查找整个字符串,退出循环。
    while ( (p = strchr (s, c)) != NULL )
    {

        //暂存查找到的字符地址。
        found = p;

        //截取已经查找过的字符串(将返回地址p的下一个字符地址作为字符串开头)。
        s = p + 1;
    }

    //如果没有找到字符,则不会执行循环,found返回初值NULL。

    //如果找到字符,返回p赋给found的指针地址。

    return (char *) found;

strstr:

      函数名: strstr

  功 能: 在串中查找指定字符串的第一次出现

  用 法: char *strstr(char *str1, char *str2);

  strstr原型:extern char *strstr(char *haystack, char *needle);

  用法:#include <string.h>

  功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

  说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

你可能感兴趣的:(c,String,null,character)