strrchr()函數_字符處理

strrchr()函數:
strrchr()函數的作用是:
    查找一個字符串在另一個字符串中 末次 出現的位置,並返回從字符串中的這個位置起,一直到字符串結束的所有字符;
    如果未能找到指定字符,那麼函數將返回False。

char *strrchr(
   char *str,
   int c 
);
strrchr() 函數的分析 
函數原型:extern char * strrchr (const char *s, int c)

參數說明:s爲一個字符串的指針,c爲一個待查找字符。
        
所在庫名:#include <string.h>
  
函數功能:查找在s字符串中最後一次出現字符c的位置。
  
返回說明:如果str中存在字符ch,返回出現ch的位置的指針;否則返回NULL。

說明:
str 
必要參數。指定需要進行搜索的字符串(字符串指針)

必要參數。指定需要查找的字符對象。如果是一個數字,那麼他將搜索與這個數字對應的ASCII值相匹配的字符


strrchr()函數源碼:
/* 查找在s字符串中最後一次出現字符c的位置 */
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;
}

函數舉例:
#include <string.h>
#include <stdio.h>

void main()
{
    char * pCh = "www.inkcool.com";
    char * pFind = strrchr(pCh, '.');
    if ( pFind != NULL)
    {
        printf("%s/n", pFind);    //可以直接printf(pFind);printf("/n");左邊的表達式是合二爲一的表達方法;
    }
}

返回結果是:.com      //注意,有'.'而不是隻返回com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章