C 字串學習(二)

2021-07-10 08:27:05 字數 3074 閱讀 1081

/******************************

定義為string

型別******************************/

6.string 型別變數的賦值:

①直接賦值 str1 = str2;

②使用assign 函式:可以取第二個字串的任意字元給字串一

stringstr1 = 「abcd」;

stringstr2 = 「efg」;

str2.assign(str1,1, 3); //(字串名,起始元素,賦值個數)

out:           str1:abcd

str2:bcd

※string型別可自動調整字串大小

7.string型別字串全部合併

str1+ str2;

char

型別字元陣列要使用

strcat

函式實現合併

strcat

函式將字串

2合併給字串

1,因此

1要能放下兩個字串

8.string 型別字串部分合併

str1= 「abcd」;

str2= 「efg」;

out:           str1:abcdef

str2:efg

char

型別字元陣列的部分合併要使用

strncat 函式

char ch1 = 「abcd」;

char ch2 = 「efg」;

strncat(ch1, ch2, 2); //(

被合併陣列名,合併陣列名,合併個數)

out:           ch1: abcdef

ch2:efg

※只能從首位置開始向後合併

9.string 型字串的替換

使用 replace 函式

stringstr1 = 「gh」;

stringstr2 = 「abcdef」;

str1.replace(0,1,str2,4,2);

//(被替換原始位置,替換個數,替換字串名,替換位置,替換個數)

out:          str1:efh

str2: abcdef

※replace 函式支援 char 型別字元陣列

char

型別字元陣列的替換要使用

strncpy 函式

char ch1[10] = 「gh」;

char ch2 = 「abcdef」;

strncpy(ch1, ch2, 3);//(

被替換字元陣列名,替換字元陣列名,替換個數)

out:           ch1: abc

ch2: abcdef

※只能從首位置開始替換與被替換

10.string 型字串的複製

①string 型別之間複製使用 assign 函式

②string 到char 型別複製使用 copy 函式

stringstr = 「abcd」;

charch = 「1234」;

intn;

cout<< "源字串"<< ch << endl;

n= str.copy(ch, 4, 0);//(複製陣列名,被複製元素個數,被複製元素起始位置)

cout<<"複製了:"<< n << 「字元」 << endl;

cout<<"複製後:"<< ch<< endl;

out: 源字串:1234

複製了4字元

複製後:abcd

※所有操作針對於string型別,且返回值為複製字元個數

char

型別使用

memmove函式進行字串複製

char ch1[15] = 「abcdefghijklmn」;

char ch2 = 「1234567890」;

cout << 「

源字串:

」 << ch1 << endl;

memmove(ch1, ch2, 10);//(

被複製字串,複製字串,複製的字元數目)

cout << 「

拷貝後:

」 << ch1 << endl;

out:

源字串:

abcdefghijklmn

拷貝後:

1234567890klmn

11.string 型別字串的插入

使用insert函式

定義格式 str.insert(index1, str1, index2, num );

(被插入位置,插入字串名,插入位置,插入個數)

stringstr1 = 「12789」;

stringstr2 = 「3456」;

str1.insert(2,str2, 0, 4);

out: 123456789

12.string 型別字串的刪除

使用 erase 函式

#include

#include

using namespace std;

int main (void)

strings ( "give me");

cout<< "原始字串:" << s << endl;

s.erase(2,2);

cout<< "現在字串為:" << s << endl;

s.erase(2);

cout<< "現在字串為:" << s << endl;

s.erase();

cout<< "現在字串為:" << s << endl;

return0;

out: 原始字串:give me

現在字串為:gi me

現在字串為:gi

現在字串為:

※erase() 函式可以根據字串中指定的位置刪除字元,同時返回指向下乙個字元this指標

C 字串學習筆記二

續集來了,快樂分享。1.字串連線時最好保證字串中不發生變化的部分宣告為常量。對於單一的連線,不要使用stringbuilder,因為建立物件所耗費的系統開銷會超出連線所帶來的效能上的收益。對於單一的連線,可能的話,應該使用常量和其他的內建字串,因為這樣可以將效能提高3倍。2.如何分解句子到單詞 st...

c 字串新增字元 C 字串

在 c 語言中,字串實際上是使用null字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting 6 依據陣列...

C 字串學習(一)

c 字串 定義為char 型別 1.cin 相當於 printf s 遇到空格停止錄入,cout相當於 printf s 遇到空格停止輸出。2.使用 cin.get charname 12 cin.get name,12 3.計算字串長度 strlen name 字串不包含 0的長度 sizeof ...