C++學習 --string

目錄

1, 什么是string

2, 創建string

3, 操作string

3-1, 賦值

3-1-1, 賦值(=)

3-1-1, 賦值(assign)

3-2, 修改

3-2-1, 拼接

3-2-1-1, 拼接(+)

3-2-1-2, 拼接(append)

3-2-2, 替換(replace)

3-2-3, 單字符操作

?3-2-4, 插入(insert)

3-3, 查詢

3-3-1, 查找(find)

3-3-2, 查找(rfind)

?3-3-3, 子串(substr)

?3-3-4, 單字符操作

3-3-5, 獲取首尾字符

3-4, 比較(compare)

3-5, 刪除(erase)

3-6,獲取字符串長度


1, 什么是string

C++中的字符串, 本質是一個類

2, 創建string

通過string 對象名, 創建一個string

//普通創建
string str1;
//拷貝構造,str1拷貝給str2
string str2(str1);
//定義5個a組成的字符串
string str3(5, 'a');

3, 操作string

3-1, 賦值

3-1-1, 賦值(=)

通過string 對象名 = 字符串, 進行string對象賦值

//創建str1, 并賦值aaa
string str1 = "aaa";
//創建str2, 并賦值bbb
string str2("bbb");

3-1-1, 賦值(assign)

通過對象名.assign(字符串), 進行string對象賦值

string str2;
str2.assign("bbb");
//字符串有5個字符c組成
string str3;
str3.assign(5,  'c');
//將str3拷貝給str4
string str4;
str4.assign(str3);
//表示獲取str1從第3個索引開始直到最后的字符賦值給str2
str2.assign(str1, 3);
//表示獲取str1從第3個索引開始的后兩個字符賦值給str2
str2.assign(str1, 3, 2);

3-2, 修改

3-2-1, 拼接

3-2-1-1, 拼接(+)

通過對象1+對象2, 拼接兩個字符串

string str1 = "hello c++";
//注意拼接之間沒有空格, 等價于str1 += str1
str1 = str1 + str1;
3-2-1-2, 拼接(append)

通過對象名1.append(對象名2), 拼接兩個字符串

string str1 = "hello c++";
str1.append(str1);
//表示從str1的第3個索引開始直到最后, 拼接到str1后面
str1.append(str1, 3);
//表示從str1的第2個索引開始, 拼接3個字符到str1后面
str1.append(str1, 2, 3);

3-2-2, 替換(replace)

?通過對象名.replace(起始索引, 結束索引, 替換值), 可替換字符串內容

string str1 = "hello c++";
//將第1~3號位索引對應的信息替換為aaa
str1.replace(1, 3, "aaa");

3-2-3, 單字符操作

通過對象名[索引]或者對象名.at(索引), 獲取字符串的單個字符

//獲取索引為1對應的字符
cout << str1[1] << endl;
cout << str1.at(1) << endl;

?3-2-4, 插入(insert)

通過對象名.insert(索引, 值), 向字符串中插入數據

//在str1的第二個索引位置插入aaa
str1.insert(2, "aaa");

3-3, 查詢

3-3-1, 查找(find)

通過對象名.find(), 可查找字符串中的子串,?從開始查找, 返回對應的首次匹配索引

cout << str1.find("aa") << endl;

3-3-2, 查找(rfind)

通過對象名.rfind(), 可查找字符串中的子串,?從開始查找, 返回對應的首次匹配索引

cout << str1.find("l") << endl;

?3-3-3, 子串(substr)

通過對象名.substr(起始索引, 結束索引), 返回起始索引~結束索引的字符

//返回str1的第1~4個字符
cout << str1.substr(1, 4) << endl;

?3-3-4, 單字符操作

通過對象名[索引]或者對象名.at(索引), 修改字符串的單個字符

//修改索引為1對應的字符
str1[1] = 'a';
str1.at(2) = 'a';
cout << str1[1] << endl;
cout << str1.at(1) << endl;

3-3-5, 獲取首尾字符

通過對象名.front(), 獲取字符串首字符,?通過對象名.back(), 獲取字符串尾字符

cout << str1.front() << endl;
cout << str1.back() << endl;

3-4, 比較(compare)

通過對象名1.compare(對象名2),?進行比較字符串大小逐個比較兩個字符串的Ascii碼, 相等返回0, 對象名1大于對象名2返回1,?對象名1小于對象名2返回-1?

string str1 = "hello c++";
string str2 = "1hello c++";
cout << str1.compare(str2) << endl;

3-5, 刪除(erase)

通過對象名.erase(起始索引, 結束索引), 刪除字符串中指定的字符

//刪除str1的第1~3個字符
str1.erase(1, 3);
cout << str1 << endl;

3-6,獲取字符串長度

cout << str1.size() << endl;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161842.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

srs的webrtc信令分析

關于webrtc的流信令只有四個 /rtc/v1/publish/&#xff0c;這是推流接口&#xff0c;是推流客戶端跟SRS交換SDP的接口 /rtc/v1/play/&#xff0c;這是拉流接口&#xff0c;是拉流客戶端跟SRS交換SDP的接口 /rtc/v1/whip/&#xff0c;這也是推流接口&#xff0c;作用是也是交換…

C#開發的OpenRA游戲之屬性RenderSprites(8)

C#開發的OpenRA游戲之屬性RenderSprites(8) 本文開始學習RenderSprites屬性,這個屬性是跟渲染有關的,因此它就攝及顏色相關的內容,所以我們先來學習一下調色板,這是舊游戲的圖片文件保存的格式,如果放在現代來看,不會再采用這種方法,畢竟現在存儲空間變大,便宜了,并…

JDBC 操作 SQL Server 時如何傳入列表參數

本文是作為將要對 PostgreSQL 的 in, any() 操作的一個鋪墊&#xff0c;也是對先前用 JDBC 操作 SQL Server 的溫習。以此記錄一下用 JDBC 查詢 SQL Server 時如何傳遞一個列表參數。比如想像一下查詢語句 select * from users where id in (?) 我們是否能給這里的問題參數傳遞…

idea編譯問題導致接口調用不通

問題背景&#xff1a; 1.idea版本2021&#xff0c;springboot&#xff0c;父子maven項目&#xff0c;創建了一個新的model。啟動之后&#xff0c;調試controller接口&#xff0c;接口一直報404。 問題分析&#xff1a; 1.查看編譯后的文件&#xff0c;發現java代碼一直沒編譯…

Vue3使用dataV報錯問題解決

DataV官網&#xff1a;https://datav-vue3.jiaminghi.com/guide/ vue2中是沒有問題的&#xff0c;這是第一次在vue3中使用發現的報錯問題 報錯問題 首先安裝&#xff1a; pnpm add dataview/datav-vue3 1. 全局注冊報錯 然后main.ts全局注冊 import { createApp } f…

html網站-關于發展歷程的案例

一、案例一 1.效果圖&#xff1a; 2.代碼&#xff1a; 所用到的文件自行在官網下載&#xff0c;也可在git上拉取。 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta…

USB驅動開發基礎

USB標準 USB1.0&#xff0c; 1996&#xff0c;低速1.5Mbps和高速12Mbps&#xff0c;USB1.1 iMac G3&#xff0c;Type A和Type B接口USB 2.0 2000&#xff0c; 480Mpbs&#xff0c;Type A/B/C接口、Micro A/BUSB 3.0 5Gbps, 隨著USB 3.2命名規定&#xff0c;現在也叫USB 3.2 Ge…

Nginx模塊開發之http過濾器filter

文章目錄 什么是過濾模塊Nginx相關數據結構介紹ngx_module_t的數據結構ngx_http_module_t數據結構ngx_command_s數據結構 相關宏定義filter&#xff08;過濾器&#xff09;實現Nginx模塊開發流程Nginx 模塊執行具體實現流程create_loc_confmerge_loc_confpostconfiguration修改…

使用OkHttp庫爬取百度云視頻詳細步驟

目錄 摘要 一、OkHttp庫簡介 二、爬蟲基本概念 三、使用OkHttp庫爬取百度云視頻 1、發送HTTP請求 2、處理響應 3、下載文件 四、可能遇到的問題及解決方案 五、注意事項 總結與建議 摘要 本文將詳細介紹如何使用OkHttp庫爬取百度云視頻。文章首先簡要介紹OkHttp庫和…

【collections】Python中的OrderDict

【collections】Python中的OrderDict 文章目錄 【collections】Python中的OrderDict1. 什么是OrderedDict2. Toy Code 1. 什么是OrderedDict 其實很簡單OrderedDict是Python中一個字典dict的變體&#xff0c;它可以按照元素添加的順序來保持鍵值對&#xff08;key-value pair&…

GPIO模式詳解:推挽/開漏/浮空/上拉/下拉/施密特(遲滯)輸入

GPIO(General Purpose Input Output)可用于執行數字輸入或輸出功能。典型的應用包括從/向模擬或數字傳感器/設備讀寫數值、驅動LED、為I2C通信驅動時鐘、生成外部組件的觸發、發出中斷等。 文章目錄 1 GPIO簡介2 輸出模式2.1 推挽輸出2.2 開漏輸出 3 輸入模式3.1 高阻態(浮空)、…

推薦一款適合做智慧旅游的前端模板

目錄 前言 一、功能介紹 二、前端技術介紹 三、功能及界面設計介紹 1、數據概覽 2、車輛監控 3、地圖界面 4、其它功能 四、擴展說明 總結 前言 智慧旅游是一種全新的旅游業務模式&#xff0c;它充分利用先進的信息技術&#xff0c;提升旅游體驗&#xff0c;優化旅游管…

【Axure高保真原型】樹形表格

今天和大家分享樹形表格的原型模板&#xff0c;點擊樹的箭頭可以打開或者收起子節點&#xff0c;點擊表格內容&#xff0c;可以選中該行內容實現高亮變色效果&#xff0c;樹形表格是通過中繼器制作的&#xff0c;使用簡單&#xff0c;只需要按要求填寫中繼器表格即可&#xff0…

2023亞太杯數學建模思路 - 案例:粒子群算法

文章目錄 1 什么是粒子群算法&#xff1f;2 舉個例子3 還是一個例子算法流程算法實現建模資料 # 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

安防監控視頻融合平臺EasyCVR定制化頁面開發

安防監控EasyCVR視頻匯聚平臺基于云邊端智能協同&#xff0c;支持海量視頻的輕量化接入與匯聚、轉碼與處理、全網智能分發、視頻集中存儲等。安防視頻平臺EasyCVR拓展性強&#xff0c;視頻能力豐富&#xff0c;具體可實現視頻監控直播、視頻輪播、視頻錄像、云存儲、回放與檢索…

ConditionObject介紹(二)

1. Condition的signal方法分析 分為了幾個部分&#xff1a; ● 確保執行signal方法的是持有鎖的線程 ● 脫離Condition的隊列 ● 將Node狀態從-2改為0 ● 將Node添加到AQS隊列 ● 為了避免當前Node無法在AQS隊列正常喚醒做了一些判斷和操作 // 線程掛起后&#xff0c;可以基于…

Centos設置nginx開機自啟動設置

Centos設置nginx開機自啟動設置 要設置CentOS中的Nginx開機自啟動&#xff0c;可以按照以下步驟進行操作&#xff1a; 首先&#xff0c;登錄到CentOS服務器上&#xff0c;并以root用戶或具有sudo權限的用戶身份執行以下命令來安裝Nginx&#xff08;如果尚未安裝&#xff09;&a…

字符集合!!!

字符集合&#xff01;&#xff01;&#xff01; 描述 輸入一個字符串&#xff0c;求出該字符串包含的字符集合&#xff0c;按照字母輸入的順序輸出。 數據范圍&#xff1a;輸入的字符串長度滿足 1 \le n \le 100 \1≤n≤100 &#xff0c;且只包含大小寫字母&#xff0c;區分大小…

中國信息通信研究院產業與規劃研究所校招一面、二面內容

本文介紹2024屆秋招中&#xff0c;中國信息通信研究院的數字孿生智慧城市研究員崗位一面、二面的面試基本情況、提問問題等。 10月投遞了中國信息通信研究院的數字孿生智慧城市研究員崗位&#xff0c;所在部門為數字孿生與城市數字化研究部。目前完成了一面與二面&#xff0c;在…

Django 模型和Admin站點管理(三)

一、定義模型 &#xff08;1&#xff09; 創建模型類&#xff0c;必須要繼承自 models.Model from django.db import models# Create your models here. #設計數據庫 #創建模型 class UserModel(models.Model):namemodels.CharField(max_length30) #對應于SQL name varchar(30…