欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中String類的常用接口函數(shù)總結(jié)

 更新時間:2023年06月18日 11:08:28   作者:小怡同學(xué)..  
這篇文章主要介紹了C++中Stirng類的常用接口函數(shù),文中有詳細(xì)的代碼示例供大家參考,對我們學(xué)習(xí)C++有一定的幫助,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)

string

string時表示字符串的字符類
//使用 string類包含#include 頭文件 以及 using namespace std

string類的常見構(gòu)造

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string s;//string()
	string s1("hello world");//string(const char* s)
	string s2(s1);//string(const string& s)
	cout << s << endl;
	cout << s1 << endl;
	cout << s2 << endl;
	return 0;
}

string容量相關(guān)接口 (size(),capacity(),clear(),empty)

1.size()是元素個數(shù)
//. size()與length()方法底層實現(xiàn)原理完全相同,引入size()的原因是為了與其他容器的接口保持一致,一般情況下基本都是用size()。
2.capacity()是容積
3.clear()將字符串清空,但不改變底層空間大小 //clear()只是將string中有效字符清空,不改變底層空間大小。
4.empty()檢測字符串是否為空是返回true ,否則返回false

resize()接口函數(shù)

resize(size_t n) 與 resize(size_t n, char
c)都是將字符串中有效字符個數(shù)改變到n個,不同的是當(dāng)字符個數(shù)增多時:resize(n)用0來填充多出的元素空間,resize(size_t n, char
c)用字符c來填充多出的元素空間。注意:resize在改變元素個數(shù)時,如果是將元素個數(shù)增多,可能會改變底層容量的大小,如果是將元素個數(shù)減少,底層空間總大小不變。

int main()
{
	string s1("hello world");
	cout << s1.size() <<endl;
	cout << s1.capacity() << endl;
	s1.resize(34,'y');// 將s1中有效字符個數(shù)增加到34個,多出位置用'y'進行填充
	s1.resize(13);
	cout << s1.size() << endl;
	cout << s1.capacity() << endl;
	cout << s1 << endl;
	s1.resize(3, 'y');
	cout << s1.size() << endl;
	cout << s1.capacity() << endl;
	cout << s1 << endl;
	return 0;
}

reserve()

//reserve(size_t res_arg=0)
為string預(yù)留空間,不改變有效元素個數(shù),當(dāng)reserve的參數(shù)小于string的底層空間總大小時,reserver不會改變?nèi)萘看笮 ?/p>

string類對象的訪問及遍歷操作

//operator[]
//迭代器->begin(),end() / rbegin() ,rend()
//for

1.operator[]

2.迭代器

int main()
{
	string s1("hello world");
	string::iterator vit = s1.begin();
	while (vit != s1.end())
	{
		cout << *vit ;
		vit++;
	}
	cout << "  " << endl;
	string::reverse_iterator it = s1.rbegin();
	while (it != s1.rend())
	{
		cout << *it;
		it++;
	}
	return 0;
}

3.范圍for

int main()
{
	string s1("hello world");
	for (auto tmp: s1)//tmp只是原數(shù)組拷貝 不改變原數(shù)就改成引用會改變
	{
		cout << ++tmp;
	}
	cout << " " << endl;
	for (auto& tmp : s1)
	{
		cout << ++tmp ;
	}
	return 0;
}

string類對象的修改和操作

插入(拼接)方式

push_back() //加字符
append()//加字符串
operator()//加字符或字符串都行

int main()
{
	string s1("hello world");
	s1.push_back('a');
	s1.append("asddfs");
	s1 += 'a';
	s1 += "sfasd";
	cout << s1;
	return 0;
}

正向和反向查找:find() + rfind()

int main()
{
	string s1("hello.world");
	int pos1 = s1.find('.');
	string s ("string.cpp");
	int pos = s.rfind('.');
	string s2("aahello.world");
	int pos = s2.find(s1);//查找字符串
	//返回下標(biāo)
	string s1("hello.worl.d");
	int pos = s1.find('.',6 );
	//第一個參數(shù)是要找的字符、字符串,第二個參數(shù)是從下標(biāo)n開始查找
	cout << pos;
	return 0;
	// npos是string里面的一個靜態(tài)成員變量
	// static const size_t npos = -1;
	//如果未找到匹配項,則該函數(shù)返回string::npos。
}

截取子串:substr()

string substr (size_t pos = 0, size_t len = npos) const

int main()
{
	string s1("hello.world");
	int pos1 = s1.find('.');
	string s2("aahello.world");
	string s3( s1.substr(1, 5));
	cout << s3 << endl;
	//從下標(biāo)pos ,截取n個
	return 0;
	//返回字符串對象
}

getline()

//非字符類的接口函數(shù)

istream& getline (istream& is, string& str)

int main()
{
	string s1;
	getline(cin,s1);
	cout << s1 << endl;
	return 0;
}

reverse用法

//非string接口函數(shù),常用于字符串反轉(zhuǎn) void reverse (BidirectionalIterator first,BidirectionalIterator last); 參數(shù)是迭代器 (左閉右開)

#include <iostream>
#include <string>
using namespace std;
    int main()
    {
        string s ("race a car");
        reverse(s.begin(), s.end());
        cout << s << endl;
        return 0;
    }

//begin()是字符串第一個字符
//end()是字符串最后一個字符的下一位
//rbegin()是最后一個元素
//rend()是第一個元素

到此這篇關(guān)于C++中String類的常用接口函數(shù)的文章就介紹到這了,更多相關(guān)C++ String類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言?指針數(shù)組進階詳解

    C語言?指針數(shù)組進階詳解

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活
    2022-02-02
  • C++?數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解順序表

    C++?數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示
    2022-03-03
  • linux下access函數(shù)的用法介紹

    linux下access函數(shù)的用法介紹

    access檢查用戶對一個文件的權(quán)限情況,根據(jù)mode的值檢查調(diào)用進程對文件pathname是否具有讀、寫、或執(zhí)行的權(quán)限
    2013-08-08
  • C/C++ProtoBuf使用小結(jié)

    C/C++ProtoBuf使用小結(jié)

    ProtoBuf全稱:protocol buffers,直譯過來是:“協(xié)議緩沖區(qū)”,是一種與語言無關(guān)、與平臺無關(guān)的可擴展機制,用于序列化結(jié)構(gòu)化數(shù)據(jù),這篇文章主要介紹了C/C++ProtoBuf使用,需要的朋友可以參考下
    2024-01-01
  • C語言刷題之倒置字符串的解題全過程

    C語言刷題之倒置字符串的解題全過程

    這篇文章主要給大家介紹了關(guān)于C語言刷題之倒置字符串的解題全過程,這是一道我們經(jīng)常刷到的實戰(zhàn)題目,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-02-02
  • C\C++ 獲取當(dāng)前路徑實例詳解

    C\C++ 獲取當(dāng)前路徑實例詳解

    這篇文章主要介紹了C\C++ 獲取當(dāng)前路徑實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++編程模板匹配超詳細(xì)的識別手寫數(shù)字實現(xiàn)示例

    C++編程模板匹配超詳細(xì)的識別手寫數(shù)字實現(xiàn)示例

    大家好!本篇文章是關(guān)于手寫數(shù)字識別的,接下來我將在這里記錄我的手寫數(shù)字識別的從零到有,我在這里把我自己的寫代碼過程發(fā)出來,希望能幫到和我一樣努力求知的人
    2021-10-10
  • C語言字符串處理的驚天大坑問題解決

    C語言字符串處理的驚天大坑問題解決

    這篇文章主要為大家介紹了C語言字符串處理的驚天大坑問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C++11 并發(fā)指南之std::thread 詳解

    C++11 并發(fā)指南之std::thread 詳解

    這篇文章主要介紹了C++11 并發(fā)指南之std::thread 詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C++實現(xiàn)獲取本機MAC地址與IP地址

    C++實現(xiàn)獲取本機MAC地址與IP地址

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)獲取本機MAC地址與IP地址的兩種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02

最新評論