C語言中查找字符在字符串中出現(xiàn)的位置的方法
C語言strchr()函數(shù):查找某字符在字符串中首次出現(xiàn)的位置
頭文件:#include <string.h>
strchr() 用來查找某字符在字符串中首次出現(xiàn)的位置,其原型為:
char * strchr (const char *str, int c);
【參數(shù)】str 為要查找的字符串,c 為要查找的字符。
strchr() 將會(huì)找出 str 字符串中第一次出現(xiàn)的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結(jié)束標(biāo)志 NUL 也會(huì)被納入檢索范圍,所以 str 的組后一個(gè)字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內(nèi)存中隨機(jī)分配的地址再加上你所搜索的字符在字符串位置。設(shè)字符在字符串中首次出現(xiàn)的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現(xiàn)的位置,可以使用 strrchr() 函數(shù)。
【實(shí)例】查找字符5首次出現(xiàn)的位置。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *s = "0123456789012345678901234567890"; char *p; p = strchr(s, '5'); printf("%ld\n", s); printf("%ld\n", p); system("pause"); return 0; }
輸出結(jié)果:
12016464 12016469
C語言strrchr()函數(shù):查找某字符在字符串中最后一次出現(xiàn)的位置
頭文件:#include <string.h>
strrchr() 函數(shù)用于查找某字符在字符串中最后一次出現(xiàn)的位置,其原型為:
char * strrchr(const char *str, int c);
【參數(shù)】str 為要查找的字符串,c 為要查找的字符。
strrchr() 將會(huì)找出 str 字符串中最后一次出現(xiàn)的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結(jié)束標(biāo)志 NUL 也會(huì)被納入檢索范圍,所以 str 的組后一個(gè)字符也可以被定位。
【返回值】如果找到就返回該字符最后一次出現(xiàn)的位置,否則返回 NULL。
返回的地址是字符串在內(nèi)存中隨機(jī)分配的地址再加上你所搜索的字符在字符串位置。設(shè)字符在字符串中首次出現(xiàn)的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中第一次出現(xiàn)的位置,可以使用 strchr() 函數(shù)。
實(shí)例:查找字符5最后一次出現(xiàn)的位置。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *s = "0123456789012345678901234567890"; char *p; p = strrchr(s, '5'); printf("%ld\n", s); printf("%ld\n", p); system("pause"); return 0; }
執(zhí)行結(jié)果:
12999504 12999529
相關(guān)文章
C++實(shí)現(xiàn)動(dòng)態(tài)數(shù)組功能
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)動(dòng)態(tài)數(shù)組功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11C++ Clock類模擬實(shí)現(xiàn)鬧鐘運(yùn)行
這篇文章主要為大家詳細(xì)介紹了C++ Clock類模擬實(shí)現(xiàn)鬧鐘運(yùn)行,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Qt圖片繪圖類之QPixmap/QImage/QPicture詳解
這篇文章主要為大家詳細(xì)介紹了Qt圖片繪圖類中QPixmap、QImage和QPicture的使用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03Assert(斷言實(shí)現(xiàn)機(jī)制深入剖析)
言前后最好空一格[編程風(fēng)格的問題,按你自已的喜好,適合自已就最好]。斷言只是用來檢查程序的邏輯正確性,不能代替條件替換。斷言比printf語句這種形式的打印好使2013-09-09如何判斷一個(gè)整數(shù)的二進(jìn)制中有多少個(gè)1
本篇文章是對(duì)如何判斷一個(gè)整數(shù)的二進(jìn)制中有多少個(gè)1的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C語言 數(shù)據(jù)結(jié)構(gòu)平衡二叉樹實(shí)例詳解
這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)平衡二叉樹實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06VS2019開發(fā)簡(jiǎn)單的C/C++動(dòng)態(tài)鏈接庫并進(jìn)行調(diào)用的實(shí)現(xiàn)
這篇文章主要介紹了VS2019開發(fā)簡(jiǎn)單的C/C++動(dòng)態(tài)鏈接庫并進(jìn)行調(diào)用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03