string類一些常用函式用法

2021-08-01 03:20:39 字數 3554 閱讀 2776

insert

string的成員函式insert有以下多種過載:

string &insert(int p0, const char *s);——在p0位置插入字串s

string &insert(int p0, const char *s, int n);——在p0位置插入字串s的前n個字元

string &insert(int p0,const string &s);——在p0位置插入字串s

string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字串s從pos開始的連續n個字元

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

iterator insert(iterator it, char c);//在it處插入字元c,返回插入後迭代器的位置

void insert(iterator it, const_iterator first, const_iteratorlast);//在it處插入從first開始至last-1的所有字元

void insert(iterator it, int n, char c);//在it處插入n個字元c

//#include "stdafx.h"//if the vc++6.0, with this line.

#include

#include

using

namespace

std;//

int main(void)

輸出是123fghi4567890.

erase

erase函式的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是說有三種用法:

(1)erase(pos,n); 刪除從pos開始的n個字元,比如erase(0,1)就是刪除第乙個字元

(2)erase(position);刪除position處的乙個字元(position是個string型別的迭代器)

(3)erase(first,last);刪除從first到last之間的字元(first和last都是迭代器)

#include 

#include

using namespace std;

int main ()

substr

返回乙個從指定位置開始,並具有指定長度的子字串。

引數start : 必選。所需的子字串的起始位置。字串中第乙個字元的索引為 0。

length 可選項。返回的子字串中包含的字元數。

備註如果 length 為 0 或負數,將返回乙個空字串。如果沒有指定該引數,則子字串將延續到字串的結尾。

find

string中 find()的應用 (rfind() 類似,只是從反向查詢)

原型如下:

(1)size_t find (const string& str, size_t pos = 0) const; //查詢物件–string類物件

(2)size_t find (const char* s, size_t pos = 0) const; //查詢物件–字串

(3)size_t find (const char* s, size_t pos, size_t n) const; //查詢物件–字串的前n個字元

(4)size_t find (char c, size_t pos = 0) const; //查詢物件–字元

結果:找到 – 返回 第乙個字元的索引

沒找到–返回 string::npos(-1)

示例:

[cpp] view plain copy

#include // std::cout

#include // std::string

int main ()

結果:

first 『needle』 found at: 14

second 『needle』 found at: 44

『haystack』 also found at: 30

period found at: 51

there are two prepositions in this haystack with needles

其他還有 find_first_of(), find_last_of(), find_first_not_of(), find_last_not_of()

作用是查詢 字串中 任乙個字元 滿足的查詢條件

string snake1(「cobra」);

int where = snake1.find_first_of(「hark」);

返回3 因為 「hark」中 各乙個字元 在 snake1–cobra 中第一次出現的是 字元』r』(3為 cobra 中』r』的索引)

同理:

int where = snake1.find_last_of(「hark」);

返回4 因為 「hark」中 各乙個字元 在 snake1–cobra 中最後一次出現的是 字元』a』(3為 cobra 中』r』的索引)

其他同理

size&&length

length是因為沿用c語言的習慣而保留下來的,string類最初只有length,引入stl之後,為了相容又加入了size,它是作為stl容器的屬性存在的,便於符合stl的介面規則,以便用於stl的演算法。

string類的size()/length()方法返回的是位元組數,不管是否有漢字。

reserve

reverse(s.begin(),s.end()) 顛倒字串

strncpy

strncpy 是 c語言的庫函式之一,來自 c語言標準庫,定義於 string.h,char *strncpy(char *dest, const char *src, int n),把src所指向的字串中以src位址開始的前n個位元組複製到dest所指的陣列中,並返回dest。

strchr

char strchr(const char _str,char _val)

char strchr(char _str,char _ch)

查詢字串_str中首次出現字元_val的位置

說明:返回首次出現_val的位置的指標,返回的位址是被查詢字串指標開始的第乙個與val相同字元的指標,如果str中不存在val則返回null。

返回值:成功則返回要查詢字元第一次出現的位置,失敗返回null

String類中一些常用的函式

1 charat index 通過他的索引來獲取元素 test public void test1 string a dfjkdjfd134 for int i 0 i2 indexof string s 返回當前字串的索引,字串索引的位置從0開始 indexof string s,int star...

String一些函式的用法

1 substring 用法 這個函式返回第乙個引數中從第二個引數指定的位置開始 第三個引數指定的長度的子字串。該字串中的每個字元都被認為具有數字位置 第乙個字元的位置是 1,第二個字元的位置是 2,依此類推。如果未指定第三個引數,將返回從第二個引數指定的位置開始直到字串結尾的子字串。如果引數不是字...

string類的一些成員函式

1 const char data data 函式返回指向自己的第乙個字元的指標.由於data 函式返回的是const char 所以不能直接通過指標修改返回的字串的值,如果要修改,必須把型別轉化為char 2 const char c str c str 函式返回乙個指向正規c字串的指標,內容與本...