色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++字符串string

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2023-07-10 00:26 ? 次閱讀

1.string類簡介

string是C++編程語言中的字符串。在C++中字符串處理可以使用c語言字符串形式char *,也可以使用string類格式。

string 是一個類,類內有char *指針,通過容器方式管理字符串。使用string類型需要需要包含頭文件string。

2.string類的構造函數

string類提供了多種構造函數,支持無參構造、有參構造、拷貝構造。

無參構造:
string()  
有參構造:string(const char *str);
拷貝構造
:string(const string &str);
初始化字符串為count個c字符:string(int count,char c);

使用示例:

#include 
#include 
using namespace std;
void test()
{
	string s1;//默認構造,即無參構造函數
	char const* str = "hello,world";//c語言字符穿
	string s2(str);//傳入C語言字符串
	cout 
wKgaomSqwICAA6-pAAK9VNfkJnU317.png

3.string類賦值相關函數

string類中提供"="運算符重載和assign全局函數進行賦值操。這兩種方式均有多個重載版本,如下所示:

string字符串賦值
string &operator=(const char *s);//將c字符串賦給string
string &operator=(const string &s);//將s賦值給string
string &operator=(char c);//將字符c賦給string
//全局函數
string &assign(const char *s);//將c字符串賦給string
string &assign(const char *s,int n);//將c字符串前n個賦給string
string &assign(const string &s);//將s賦給string
string &assign(int n,char c);//將n個c賦給string

使用示例:

#include 
using namespace std;
#include 
void test()
{
	string s1="hello,world";//c語言字符串賦值
	cout 
wKgaomSqwWmAFeV0AAIlrwTEwq0242.png

4.string類字符串拼接

string類中字符串拼接有重載"+="運算和全局函數append方式,均有多種重載版本。

運算符重載
string &operator+=(const char *s);////將s追加到string
string &operator+=(const string &str);//將str追加到string
string &operator+=(const char c);//將字符c追加到string
全局函數append
string &append(const char *s);//將s追加到string
string &append(const char *s,int n);//將s的前n個追加到string
string &append(const string &str);//等價于operator+=(const string &str)
string &append(const string &str,int pos,int n); --從str的第pos位置開始,取出n個字符追加到string中

使用示例:

void test()
{
	//+=運算符重載示例
	string s1 = "C++";
	s1 += "學習";
	s1 += ',';
	cout 
wKgZomSqwjyAAdpMAAKZmJlCIUk800.png

5.字符串查找與替換

string字符串查找有find、rfind函數。其中find函數是從左往右查找,查找成功返回第一個出現的下標,失敗返回-1;rfind是查找最后一個出現的下標,失敗返回-1。 replace函數實現字符串替換。

//find函數:從左往右查找
返回值:查找成功返回出現的位置,失敗返回-1
int find(const string&str,int pos=0)const;//形參pos表示開始查找的起始位置
int find(const char *str,int pos=0)const;
int find(const char *str,int pos=0,int n)const;//從str的第pos開始的前n個字符中str出現的位置
int find(const char c,int pos=0);//查找字符c
//rfind函數:從右往左查找
int rfind(const string &str,int pos=npos);從pos位置開始查找str最后一次出現的位置
int rfind(const char *str,int pos=npos);從pos位置開始查找str最后一次出現的位置
int rfind(const char *str,int pos=pos,int n);從pos開始的前n個字符中str最后一次出現的位置
int rfind(const char c,int pos=0);//查找c最后一次出現的位置
//字符串替換
string &replace(int pos,int n,const string &s);//將字符串的第pos位置開始的n個字符替換成s
string &replace(int pos,int n,const char *s);

使用示例:

#include 
#include 
using namespace std;
void test()
{
	string str = "1asd3as456asd4789asd";
	int pos = str.find("asd");//查找asd第一次出現的位置
	cout 
wKgaomSqw1GAavHcAAMeFfb75Lo647.png

6.字符串比較

string類中字符串比較函compare數由多個重載版本,既可以和C語言風格const char *字符串進行比較,也可以和string類字符串進行比較。相等返回0,不相等返回!0值。

字符串比較:
int compare(const char *str);//相等返回0,否則返回非0值
//比較string的len個字符,從idx位置開始
int string::compare (size_type idx, size_type len, const string& str) const
//從指定位置指定長度開始比較
int string::compare (size_type idx, size_type len, const string&str, size_type str_idx, size_type str_len) const

使用示例:

#include 
using namespace std;
#include 
void test()
{
	string str1 = "hello,world";
	if (str1 == "hello,world")
	{
		cout 
wKgZomSqxGWAQGaUAAJlt4QiE8o833.png

7.string字符串以字符方式讀寫

string類字符串使用字符方式訪問,可以使用重載"[]"版本函數,即可以和C語言中訪問方式一樣,也可以使用函數at來訪問。

string類中對于字符串的長度獲取,可以使用size()函數或者length()函數來實現。

string以字符方式訪問
	char &operator[](int n);
	char &at(int n);
string 中獲取字符串長度
	str.size();
	str.length();

使用示例:

#include 
#include 
using namespace std;
void test()
{
	string str = "hello,world";
	cout 
wKgZomSqxXWAWiX3AAHNa5Z8Ff8254.png

8.string字符串的插入與刪除

string類中插入函數insert支持多種插入方式,有多個重載版本。

字符串刪除可以使用erease函數實現。

c++插入:
string& insert(int pos,const char *s);//從第pos位置開始插入s
string& insert(int pos,const string &s);

string &insert(int p0, const char *s, int n);//從p0位置開始插入s,插入的s連續n個字符
string &insert(int p0,const string &s, int pos, int n);//從p0位置開始插入s,插入的s從pos開始,連續n個字符

string &insert(int p0, int n, char c);//從p0處插入n個字符c

c++刪除字符串
string &erase(int pos,int n=npos);//從pos位置開始刪除n個字符

使用示例:

#include 
#include 
using namespace std;
void test()
{
	string str = "hello,";
	str.insert(2,"aaa");//從第2個位置開始插入aaa
	cout 
wKgZomSqxi6AVvZJAAKGeGuHEG4532.png

9.子字符串提取

string類中對于子字符串的提取,可以使用函數substr實現。

判斷string類字符串是否為空,即長度是否為0可以使用empty函數實現。

子字符串提取
string substr(int pos=0,int n=npos)const;//從pos位置提取n個子字符
//判斷字符串是否為空
bool empty();

使用示例:

wKgZomSqxp6AWpiFAAIBZEx4jZU077.png

10.string類轉換為char *

將string字符串轉換為char *字符串,可以使用c_str函數實現。

const char *c_str();
const char *data();
在c11版本之后,這兩個函數功能一致,都是將string類型字符串轉換成char *,返回一個char *字符串,以'?'結尾。

使用示例:

#include 
#include 
using namespace std;
int main()
{
	string str = "hello,world";
	const char* p = str.c_str();
	cout 
wKgZomSq33iAcHnsAAFBNkMtYHw370.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1942

    瀏覽量

    34707
  • 字符串
    +關注

    關注

    1

    文章

    578

    瀏覽量

    20506
  • C++
    C++
    +關注

    關注

    22

    文章

    2108

    瀏覽量

    73618
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4732
收藏 人收藏

    評論

    相關推薦

    string字符串和char*/char[]型型字符串的區別 相關資料分享

    概念區分在c中,是沒有string類型的數據的。但是c語言里有這個頭文件。容易讓人誤認為c中有string類型的數據。區分
    發表于 07-05 07:27

    C語言字符串轉數字實現方法

    C/C++語言中沒有專門的字符串變量,通常用字符數組來存放字符串字符串是以“\0”作為結束符
    發表于 11-14 17:50 ?1.3w次閱讀

    Tcl學習:string compare命令對字符串的比較

    string equal則是對兩個字符串進行簡單的比較,如兩者嚴格相同,則返回1,否則返回0(與stringcompare的返回值是不同的)。
    的頭像 發表于 09-23 10:10 ?8957次閱讀

    C++字符串類學習的總結

    一般我們在c語言要實現對字符串操作的話,一般是采用字符數組或者一組函數來實現的,為啥這樣做呢,那是因為c語言里面根本就沒有字符串類型的關鍵字
    的頭像 發表于 12-24 16:24 ?753次閱讀

    字符串string對象操作的全面總結

    ? ? 字符串操作看似簡單,其實非常重要,不注意的話,經常出現代碼運行結果和自己想要的不一致,甚至崩潰。本文總結了一些構建string對象方法、修改string對象的方法、string
    的頭像 發表于 11-11 11:23 ?1939次閱讀
    <b class='flag-5'>字符串</b><b class='flag-5'>string</b>對象操作的全面總結

    C語言總結_字符串全方位練習

    C語言字符串全方位練習,涉及知識點:字符串解析、大小寫判斷、字符串插入、字符串刪除、字符串排序、
    的頭像 發表于 08-14 09:41 ?1485次閱讀

    關于STEP7庫功能字符串轉換

    :庫libraries---Standard Libray---TI-S7 Converting Blocks) FC編號 功能名稱 描述 FC5 DI_STRING 雙整數轉字符串 FC16
    的頭像 發表于 10-10 10:50 ?4206次閱讀

    字符串類型以及C++語言布爾類型

    C風格字符串;char+變量名+[ ]=”字符串值” (可以隨便定義變量名,也就是用變量名代替某一大字符,可以簡單很多。)
    的頭像 發表于 02-21 15:40 ?1067次閱讀
    <b class='flag-5'>字符串</b>類型以及<b class='flag-5'>C++</b>語言布爾類型

    C語言字符串的引用方式

    C語言程序中,字符串是存放在字符數組中的。 2. 用字符數組存放一個字符串,可以通過數組名和下標引用
    的頭像 發表于 03-10 14:57 ?1911次閱讀

    C++入門之string

    前一篇文章我們已經了解了C++中的基本類型,C++還提供了很多抽象數據類型,例如字符串stringstring包含多個
    的頭像 發表于 03-17 13:58 ?559次閱讀

    代碼字符串分割方法

    String#split 來分割。 使用 String#split 方法 String 類中 split 方法,是我們平常處理字符串分割最常用的方法之一,它可以根據給定的分隔符或正
    的頭像 發表于 09-25 11:42 ?801次閱讀

    c語言字符串定義

    C語言是一種強大而廣泛使用的編程語言,字符串是其中一個非常重要的概念。在C語言中,字符串是由一系列字符組成的數組,它可以表示文本、數字等各種
    的頭像 發表于 11-24 10:02 ?1929次閱讀

    oracle中拼接字符串函數

    在Oracle中,我們可以使用 CONCAT 函數來拼接字符串。CONCAT 函數接受兩個參數,它將這兩個參數連接起來并返回相應的字符串結果。 語法示例: CONCAT(string
    的頭像 發表于 12-06 09:49 ?2903次閱讀

    oracle字符串split成多個

    。本文將全面詳解Oracle字符串分割方法的使用、語法、注意事項以及實際應用場景等。 一、基本語法 Oracle字符串分割方法的基本語法如下: SELECT REGEXP_SUBSTR( string
    的頭像 發表于 12-06 09:54 ?5272次閱讀

    鴻蒙TypeScript學習第10天:【String字符串)】

    String 對象用于處理文本(字符串)。
    的頭像 發表于 04-08 14:32 ?796次閱讀
    鴻蒙TypeScript學習第10天:【<b class='flag-5'>String</b>(<b class='flag-5'>字符串</b>)】
    主站蜘蛛池模板: 久久99久久成人免费播放| 欧美黑人巨大xxxxx| gogogo在线观看| 亚洲AV國產国产久青草| 嗯啊好爽视频| 好大好硬好湿再深一点网站| 99久久做夜夜爱天天做精品| 亚洲欧洲日韩天堂无吗| 日本高清免费在线观看| 久久这里只有精品视频e| 国产精品成人免费| av无码在线日本天堂| 一区二区乱子伦在线播放| 日韩精品熟女一区二区三区中文 | 鲁一鲁亚洲无线码| 国产免费久久爱久久啪| 超污视频带污疼免费视频| 中文字幕午夜福利片| 亚洲国产精品天堂在线播放| 日本人作爰啪啪全过程| 男人桶女人j的视频在线观看 | 天天综合亚洲综合网站| 欧美 另类 美腿 亚洲 无码| 久久99精品AV99果冻传媒| 国产亚洲精品线观看不卡| 丰满人妻无码AV系列| Y8848高清私人影院软件优势| 真人美女精美小穴| 一个人日本的视频免费完整版| 四虎永久在线精品国产| 人体内射精一区二区三区| 免费中文字幕视频| 老司机试看午夜| 免费一级特黄欧美大片久久网| 久久青草免费线观最新 | 亚洲午夜精品aaa级久久久久| 香蕉水蜜桃牛奶涩涩| 天天靠天天擦天天摸| 天天日免费观看视频一1| 乳液全集电影在线观看| 日韩欧美视频一区|