Char型和string型字串比較整理

2021-08-11 07:47:54 字數 3543 閱讀 2916

1.賦值

char賦值:

char ch1 = "give me";

char ch2 = "a cup";

strcpy(ch1,ch2);

cout<<"ch1="《輸出結果:ch1=a cup

string賦值:

string str1 = "give me";

string str2 = "a cup";

①str1 = str2;

cout<<"str1="<②str1.assign(str2,0,5);       // 引數2為起始位置,引數3為字元數

cout<<"str1="《輸出結果:str1=a cup

str1=a cup

2.合併(全部)

char合併(全部):

char ch1[15] = "give me "; // 注意長度,合併後為13

char ch2 = "a cup";

strcat(ch1,ch2);

cout<<"ch1="《輸出結果:ch1=give me a cup

string合併(全部)

string str1 = "give me ";

string str2 = "a cup";

str1 = str1 + str2;

cout<<"str1="《輸出結果:str1=give me a cup

3.合併(部分)

char合併(部分):

char ch1[10] = "ab";  // 注意合併後的長度

char ch2 = "abc";

strncat(ch1,ch2,3);    // 引數3為從起始位置起的字元數

cout<<"ch1="《輸出結果:ch1=ababc

string合併(部分):

string str1 = "ab";

string str2 = "cdefg";

cout<<"str1="《輸出結果:str1=abefg  

4.測長

char測長:

char ch1 = "give me";

int m = strlen(ch1);  //不包括『\0』

cout<<"m="《輸出結果:m=7

string測長:

string str1 = "give me";

①int m = strlen(str1.c_str());

cout<<"m="<②int n = str1.size();

cout<<"n="<③int k = str1.length();

cout<<"k="《輸出結果:m=7

n=7k=7

5.替換

char替換:

char ch1[10] = "ab";

char ch2 = "cdefg";

strncpy(ch1,ch2,3);       // 拷貝ch2起始位置後3個字元賦給ch1

cout<<"ch1="《輸出結果:ch1=cde

string替換:

string str1 = "ab";

string str2 = "cdefgh";

str1.replace(0,1,str2,4,2);  // 將str2從下標4開始2個字元替換掉str1中從起始位置開始1個字元

// replace函式可過載,有多種形式,也支援char型字元替換

cout<<"str1="《輸出結果:str1=ghb

6.拷貝

char拷貝:

char ch1[10] = "abc";

char ch2 = "de";

memmove(ch1,ch2,2); //將ch2從起始位置起兩個字元賦給ch1

cout<<"ch1="《輸出結果:ch1=dec

string拷貝:

string str1 = "abc";

char ch2[10] = "defg";

str1.copy(ch2,10,1);    // copy函式的第乙個引數只能為char型別

// 將str1從下標1位置開始的10個字元賦給ch2

cout<<"ch2="《輸出結果:ch2=bcfg

7.插入

string str1 = "1278";

string str2 = "3456";

str1.insert(2,str2,0,4);   // 在str1下標為2的位置插入str2起始位置後4個字元

cout<<"str1="《輸出結果:str1=12345678

8.刪除

string str("give me");

str.erase(2,2); // 刪除從下標為2位置起兩個字元

cout<<"str="cout<<"str="cout<<"str="《輸出結果:str=gi me

str=gi

str=

9.查詢

string str("hello worldw");

int m = str.find('w',0);  // 從str起始位置開始查詢w字元

cout<<"m="cout<<"n="cout<<"k="cout<<"l="cout<<"p="cout<<"q="《輸出結果:m=6

n=0k=6

l=11

p=10

q=11

10.比較

string str1 = "155";

string str2 = "52";

char c = "34";

int i = str1.compare(str2);

cout<<"i="cout<<"j="cout<<"l="cout<<"k="cout<<"m="cout<<"n="<11.判空

string str = "";

if(str.empty())

12.轉換(string轉字元陣列)

string str1 = "hello world";

const char* ch1;

ch1 = str1.c_str();

13.交換

char交換:

char ch1[15] = "ofru";

char ch2[15] = "";

swab(ch1,ch2,strlen(ch1));  // 將ch1奇偶對調後傳入ch2

cout<<"ch2="《輸出結果:ch2=four

string交換:

string str1 = "four";

string str2 = "";

str1.swap(str2);

cout<<"str2="《輸出結果:str2=four

string和char型陣列的區別

char ch1 give me char ch2 a cup strcpy ch1,ch2 cout ch1 輸出結果 ch1 a cup string str1 give me string str2 a cup str1 str2 cout str1 0,5 引數2為起始位置,引數3為字元數 ...

string和char型陣列的區別

總的來說,string比char更耗時,比如apend 這種函式,而string能完成的操作char基本都可以實現。char ch1 give me char ch2 a cup strcpy ch1,ch2 cout ch1 輸出結果 ch1 a cup string str1 give me s...

C語言 char字元型

字元型資料型別 char 範圍是 128 127 unsighed 255 1 轉義字元 n t b r ddd 8 進製 xhh 十六進製制 2 非轉義字元 a b 3 得到鍵盤輸入的字元型 用getchar 例如ch getchar 相當於scanf c ch 4 將字元顯示在螢幕上用 putc...