日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

string find简析

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 string find简析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接

#include <string>
#include <iostream>
using namespace std;

void main()
{

[cpp]?view plaincopy
  • ?find函數返回類型?size_type??
  • string?s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");??
  • string?flag;??
  • string::size_type?position;??
  • ??
  • //find?函數?返回jk?在s?中的下標位置???
  • position?=?s.find("jk");??
  • ?if?(position?!=?s.npos)??//如果沒找到,返回一個特別的標志c++中用npos表示,我這里npos取值是4294967295,??
  • ?{??
  • ??cout?<<?"position?is?:?"?<<?position?<<?endl;??
  • ?}??
  • ?else??
  • ?{??
  • ??cout?<<?"Not?found?the?flag"?+?flag;??
  • ?}???
  • [cpp]?view plaincopy
  • //find?函數?返回flag?中任意字符?在s?中第一次出現的下標位置??
  • ?flag?=?"c";??
  • ?position?=?s.find_first_of(flag);??
  • ?cout?<<?"s.find_first_of(flag)?is?:?"?<<?position?<<?endl;??
  • [cpp]?view plaincopy
  • //從字符串s?下標5開始,查找字符串b?,返回b?在s?中的下標??
  • position=s.find("b",5);??
  • cout<<"s.find(b,5)?is?:?"<<position<<endl;??
  • ?

    [cpp]?view plaincopy
  • //查找s?中flag?出現的所有位置。??
  • ?flag="a";??
  • ?position=0;??
  • ?int?i=1;??
  • ?while((position=s.find_first_of(flag,position))!=string::npos)??
  • ?{??
  • ??//position=s.find_first_of(flag,position);??
  • ??cout<<"position??"<<i<<"?:?"<<position<<endl;??
  • ??position++;??
  • ??i++;??
  • ?}??
  • [cpp]?view plaincopy
  • ???
  • [cpp]?view plaincopy
  • //查找flag?中與s?第一個不匹配的位置??
  • flag="acb12389efgxyz789";??
  • position=flag.find_first_not_of?(s);??
  • cout<<"flag.find_first_not_of?(s)?:"<<position<<endl;??
  • [cpp]?view plaincopy
  • ???
  • [cpp]?view plaincopy
  • ?//反向查找,flag?在s?中最后出現的位置??
  • ?flag="3";??
  • ?position=s.rfind?(flag);??
  • ?cout<<"s.rfind?(flag)?:"<<position<<endl;??
  • }??

  • ?說明:

    1.? 如果string sub = ”abc“;

    ????????????? string s = ”cdeabcigld“;

    ???? s.find(sub) , s.rfind(sub) 這兩個函數,如果完全匹配,才返回匹配的索引,即:當s中含有abc三個連續的字母時,才返回當前索引。

    ???? s.find_first_of(sub),?? s.find_first_not_of(sub),? ?s.find_last_of(sub),? s.find_last_not_of(sub)? 這四個函數,查找s中含有sub中任意字母的索引。

    2.? 如果沒有查詢到,則返回string::npos,這是一個很大的數,其值不需要知道。

    轉載于:https://www.cnblogs.com/liangliangdetianxia/p/4165022.html

    總結

    以上是生活随笔為你收集整理的string find简析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。