C/C++編程判斷String字符串是否包含某個(gè)字符串實(shí)現(xiàn)示例
一、C語(yǔ)言風(fēng)格
在C語(yǔ)言中,字符串存儲(chǔ)為字符數(shù)組,以'\0'結(jié)束。
在C的接口中,有strstr函數(shù),可以在字符串中查找另一個(gè)字符串。
char * strstr(const char *str1, const char *str2);
功能為在str1中查找str2,如果存在,那么返回查找到的起始指針,否則返回NULL。
參考代碼:
#include <iostream> #include <string> #include <cstring> using namespace std; int main() { string a= "abcdefghigklmn" ; char *b= "def" ; char *c= "123" ; if ( strstr (a.c_str(), b) == NULL) //在a中查找b,如果不存在, cout << "not found\n" ; //輸出結(jié)果。 else //否則存在。 cout << "found\n" ; //輸出結(jié)果。 if ( strstr (a.c_str(), c) == NULL) //在a中查找b,如果不存在, cout << "not found\n" ; //輸出結(jié)果。 else //否則存在。 cout << "found\n" ; //輸出結(jié)果。 return 0; }
二、C++風(fēng)格
C++的string類(lèi)提供了字符串中查找另一個(gè)字符串的函數(shù)find。
其重載形式為:
string::size_type string::find(string &);
功能為在string對(duì)象中,查找參數(shù)string類(lèi)型的字符串是否存在,如果存在,返回起始位置。
不存在則返回 string::npos。
參考代碼如下:
#include <iostream> #include <string> using namespace std; int main() { string a= "abcdefghigklmn" ; string b= "def" ; string c= "123" ; string::size_type idx; idx=a.find(b); //在a中查找b. if (idx == string::npos ) //不存在。 cout << "not found\n" ; else //存在。 cout << "found\n" ; idx=a.find(c); //在a中查找c。 if (idx == string::npos ) //不存在。 cout << "not found\n" ; else //存在。 cout << "found\n" ; return 0; }
兩種方法在實(shí)際編程中都可以使用,效率幾乎相同。
不過(guò)相對(duì)來(lái)說(shuō)使用C++的string效率更高一些,代碼也更簡(jiǎn)便。
以上就是C++編程判斷String字符串是否包含某個(gè)字符串實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于C++判斷String字符串是否包含某個(gè)字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
QT線程池的使用(QThreadPool類(lèi)和QRunnable類(lèi))
本文主要介紹了QT線程池的使用(QThreadPool類(lèi)和QRunnable類(lèi)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Win10中VC2013安裝Unit test組件出現(xiàn)問(wèn)題解決方案
本文給大家分享的是個(gè)人在Win10中VC2013安裝Unit test組件出現(xiàn)問(wèn)題并最終找到解決辦法的過(guò)程,有需要的小伙伴可以參考下2016-03-03C++ 流插入和流提取運(yùn)算符的重載的實(shí)現(xiàn)
這篇文章主要介紹了C++ 流插入和流提取運(yùn)算符的重載的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12C++模擬Linux Shell編寫(xiě)一個(gè)自定義命令
這篇文章主要介紹了C++如何模擬Linux Shell實(shí)現(xiàn)編寫(xiě)一個(gè)自定義命令,本文通過(guò)實(shí)例代碼進(jìn)行命令行解析,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12C++ 創(chuàng)建桌面快捷方式 開(kāi)始菜單的實(shí)現(xiàn)代碼
這篇文章介紹了C++ 創(chuàng)建桌面快捷方式,開(kāi)始菜單的實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-06-06mfc入門(mén)教程之實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器
這篇文章主要介紹了mfc入門(mén)教程,手把手教你如何開(kāi)發(fā)一個(gè)簡(jiǎn)單的計(jì)算器,需要的朋友可以參考下2019-04-04C語(yǔ)言中經(jīng)socket接收數(shù)據(jù)的相關(guān)函數(shù)詳解
這篇文章主要介紹了C語(yǔ)言中經(jīng)socket接收數(shù)據(jù)的相關(guān)函數(shù)詳解,分別為recv()函數(shù)和recvfrom()函數(shù)以及recvmsg()函數(shù)的使用,需要的朋友可以參考下2015-09-09