一、C語言風格
在C語言中,字符串存儲為字符數組,以'\0'結束。
在C的接口中,有strstr函數,可以在字符串中查找另一個字符串。
char * strstr(const char *str1, const char *str2);
功能為在str1中查找str2,如果存在,那么返回查找到的起始指針,否則返回NULL。
參考代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#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" ; //輸出結果。 else //否則存在。 cout << "found\n" ; //輸出結果。 if ( strstr (a.c_str(), c) == NULL) //在a中查找b,如果不存在, cout << "not found\n" ; //輸出結果。 else //否則存在。 cout << "found\n" ; //輸出結果。 return 0; } |
二、C++風格
C++的string類提供了字符串中查找另一個字符串的函數find。
其重載形式為:
string::size_type string::find(string &);
功能為在string對象中,查找參數string類型的字符串是否存在,如果存在,返回起始位置。
不存在則返回 string::npos。
參考代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#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; } |
兩種方法在實際編程中都可以使用,效率幾乎相同。
不過相對來說使用C++的string效率更高一些,代碼也更簡便。
以上就是C++編程判斷String字符串是否包含某個字符串實現示例的詳細內容,更多關于C++判斷String字符串是否包含某個字符串的資料請關注服務器之家其它相關文章!
原文鏈接:https://blog.csdn.net/weixin_55305220/article/details/118174413