最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中std::string::npos的用法

 更新時間:2023年08月07日 08:55:18   作者:VoladorL  
這篇文章主要介紹了C++中std::string::npos的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

C++中std::string::npos

(1)它是一個常量靜態(tài)成員值,對于 size_t 類型的元素具有最高可能值。

(2)它實際上意味著直到字符串的末尾。

(3)它用作字符串成員函數(shù)中長度參數(shù)的值。

(4)作為返回值,它通常用于表示沒有匹配項。

(5)數(shù)據(jù)類型為size_t的話string:npos常量被定義為-1,因為size_t是無符號整數(shù)類型,-1是該類型的最大可能表示值。

使用示例

作為沒有匹配項的示例

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str = "I am cver";
	size_t index = str.find('.'); 
	if(index == string::npos)
	{
		cout << "This does not contain any period!" << endl;
		cout << index << endl;
	}
}

輸出

This does not contain any period!
18446744073709551615

作字符串成員函數(shù)中長度參數(shù)的值

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str = "I am cver.";
	size_t index = str.find('.'); 
	if(index == string::npos)
	{
		cout << "This does not contain any period!" << endl;
		cout << index << endl;
	}
	else
	{
		str.replace(index, string::npos, "!");
		cout << str << endl;
		cout << index << endl;
	}		
}

輸出:

I am cver!
9

string::npos的一些說明

定義

std::string::npos的定義:

static const size_t npos = -1;

表示size_t的最大值(Maximum value for size_t),如果對 -1表示size_t的最大值有疑問可以采用如下代碼驗證:

#include <iostream>
#include <limits>
#include <string>
using namespace std;
int main()
{
? ? size_t npos = -1;
? ? cout << "npos: " << npos << endl;
? ? cout << "size_t max: " << numeric_limits<size_t>::max() << endl;
}?

在我的PC上執(zhí)行結(jié)果為:

npos:           4294967295

size_t max:  4294967295

可見他們是相等的,也就是說npos表示size_t的最大值

使用

1.如果作為一個返回值(return value)表示沒有找到匹配項

例如:

#include <iostream>
#include <limits>
#include <string>
using namespace std;
int main()
{
? ? string filename = "test";
? ? cout << "filename : " << filename << endl;
? ? size_t idx = filename.find('.'); ? //作為return value,表示沒有匹配項
? ? if(idx == string::npos) ? ?
? ? {
? ? ? ? cout << "filename does not contain any period!" << endl;
? ? }
}

2.但是string::npos作為string的成員函數(shù)的一個長度參數(shù)時

表示“直到字符串結(jié)束(until the end of the string)”

例如:

tmpname.replace(idx+1, string::npos, suffix);

這里的string::npos就是一個長度參數(shù),表示直到字符串的結(jié)束,配合idx+1表示,string的剩余部分。

#include <iostream>
#include <limits>
#include <string>
using namespace std;
int main()
{
? ? string filename = "test.cpp";
? ? cout << "filename : " << filename << endl;
? ? size_t idx = filename.find('.'); ? //as a return value
? ? if(idx == string::npos) ? ?
? ? {
? ? ? ? cout << "filename does not contain any period!" << endl;
? ? }
? ? else
? ? {
? ? ? ? string tmpname = filename;
? ? ? ? tmpname.replace(idx + 1, string::npos, "xxx"); //string::npos作為長度參數(shù),表示直到字符串結(jié)束
? ? ? ? cout << "repalce: " << tmpname << endl;
? ? }
}

執(zhí)行結(jié)果為:

filename:test.cpp

replace: test.xxx

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決C++全局變量只能初始化不能賦值的問題

    解決C++全局變量只能初始化不能賦值的問題

    今天小編就為大家分享一篇解決C++全局變量只能初始化不能賦值的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C語言動態(tài)規(guī)劃之背包問題詳解

    C語言動態(tài)規(guī)劃之背包問題詳解

    這篇文章主要介紹了C語言動態(tài)規(guī)劃之背包問題詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解C++中虛析構(gòu)函數(shù)的作用及其原理分析

    詳解C++中虛析構(gòu)函數(shù)的作用及其原理分析

    這篇文章主要介紹了C++中虛析構(gòu)函數(shù)的作用及其原理分析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 如何寫好C main函數(shù)的幾個注意事項

    如何寫好C main函數(shù)的幾個注意事項

    這篇文章主要介紹了如何寫好C main函數(shù)的幾個注意事項,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • C語言實現(xiàn)返回字符串函數(shù)的四種方法

    C語言實現(xiàn)返回字符串函數(shù)的四種方法

    在C語言中實現(xiàn)函數(shù)返回字符串,首先要確定函數(shù)返回的字符串地址的來源,一般分為四種方式,下面這篇文章就給大家通過示例代碼詳細介紹這幾種方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • opencv提取水平與垂直線條

    opencv提取水平與垂直線條

    這篇文章主要為大家詳細介紹了opencv提取水平與垂直線條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言實現(xiàn)字符串相連的四種方法

    C語言實現(xiàn)字符串相連的四種方法

    本文介紹了C語言中四種常見的字符串連接方法:strcat函數(shù)直接連接,sprintf函數(shù)格式化輸出,先復(fù)制后連接(strcpy+strcat),以及使用指針操作,詳細展示了每個方法的代碼示例,需要的朋友可以參考下
    2025-07-07
  • C語言超詳細講解遞歸算法漢諾塔

    C語言超詳細講解遞歸算法漢諾塔

    漢諾塔問題是一個經(jīng)典的問題。漢諾塔(Hanoi Tower),又稱河內(nèi)塔,源于印度一個古老傳說。本文將用Java求解這一問題,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • C++實現(xiàn)LeetCode(12.整數(shù)轉(zhuǎn)化成羅馬數(shù)字)

    C++實現(xiàn)LeetCode(12.整數(shù)轉(zhuǎn)化成羅馬數(shù)字)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(12.整數(shù)轉(zhuǎn)化成羅馬數(shù)字),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言深入探究sizeof與整型數(shù)據(jù)存儲及數(shù)據(jù)類型取值范圍

    C語言深入探究sizeof與整型數(shù)據(jù)存儲及數(shù)據(jù)類型取值范圍

    在main函數(shù)中,sizeof是可以正常工作的,但是在自定義函數(shù)中就不可以了。所以本文將為大家詳細講解一下關(guān)鍵字sizeof、整型數(shù)據(jù)存儲深入、數(shù)據(jù)類型取值范圍深入
    2022-07-07

最新評論

荥经县| 慈溪市| 酒泉市| 青阳县| 朝阳区| 枣强县| 永嘉县| 淮滨县| 庆城县| 甘德县| 余姚市| 苏尼特左旗| 奉化市| 兰考县| 延安市| 南华县| 宣威市| 堆龙德庆县| 夏河县| 青海省| 鹿邑县| 淮阳县| 新河县| 罗平县| 商丘市| 沁水县| 北票市| 左贡县| 镇平县| 故城县| 怀集县| 柳林县| 万宁市| 大冶市| 元朗区| 冕宁县| 泰州市| 石棉县| SHOW| 深圳市| 来凤县|