1.賦值
char賦值:
char ch1[] = "give me";
char ch2[] = "a cup";
strcpy(ch1,ch2);
cout<<"ch1="<<ch1<<endl;
輸出結果:ch1=a cup
string賦值:
string str1 = "give me";
string str2 = "a cup";
①str1 = str2;
cout<<"str1="<<str1<<endl;
②str1.assign(str2,0,5); // 參數2為起始位置,參數3為字符數
cout<<"str1="<<str1<<endl;
輸出結果:str1=a cup
str1=a cup
2.合並(全部)
char合並(全部):
char ch1[15] = "give me "; // 注意長度,合並后為13
char ch2[] = "a cup";
strcat(ch1,ch2);
cout<<"ch1="<<ch1<<endl;
輸出結果:ch1=give me a cup
string合並(全部)
string str1 = "give me ";
string str2 = "a cup";
str1 = str1 + str2;
cout<<"str1="<<str1<<endl;
輸出結果:str1=give me a cup
3.合並(部分)
char合並(部分):
char ch1[10] = "ab"; // 注意合並后的長度
char ch2[] = "abc";
strncat(ch1,ch2,3); // 參數3為從起始位置起的字符數
cout<<"ch1="<<ch1<<endl;
輸出結果:ch1=ababc
string合並(部分):
string str1 = "ab";
string str2 = "cdefg";
str1.append(str2,2,3); // 參數2為數組下標,參數3為參數2后字符數。即將str2從下標為2位置起3個字符合並到str1
cout<<"str1="<<str1<<endl;
輸出結果:str1=abefg
4.測長
char測長:
char ch1[] = "give me";
int m = strlen(ch1); //不包括‘\0’
cout<<"m="<<m<<endl;
輸出結果:m=7
string測長:
string str1 = "give me";
①int m = strlen(str1.c_str());
cout<<"m="<<m<<endl;
②int n = str1.size();
cout<<"n="<<n<<endl;
③int k = str1.length();
cout<<"k="<<k<<endl;
輸出結果:m=7
n=7
k=7
5.替換
char替換:
char ch1[10] = "ab";
char ch2[] = "cdefg";
strncpy(ch1,ch2,3); // 拷貝ch2起始位置后3個字符賦給ch1
cout<<"ch1="<<ch1<<endl;
輸出結果: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<<endl;
輸出結果:str1=ghb
6.拷貝
char拷貝:
char ch1[10] = "abc";
char ch2[] = "de";
memmove(ch1,ch2,2); //將ch2從起始位置起兩個字符賦給ch1
cout<<"ch1="<<ch1<<endl;
輸出結果:ch1=dec
string拷貝:
string str1 = "abc";
char ch2[10] = "defg";
str1.copy(ch2,10,1); // copy函數的第一個參數只能為char類型
// 將str1從下標1位置開始的10個字符賦給ch2
cout<<"ch2="<<ch2<<endl;
輸出結果:ch2=bcfg
7.插入
string str1 = "1278";
string str2 = "3456";
str1.insert(2,str2,0,4); // 在str1下標為2的位置插入str2起始位置后4個字符
cout<<"str1="<<str1<<endl;
輸出結果:str1=12345678
8.刪除
string str("give me");
str.erase(2,2); // 刪除從下標為2位置起兩個字符
cout<<"str="<<str<<endl;
str.erase(2); // 刪除下標為2位置后全部字符
cout<<"str="<<str<<endl;
str.erase(); // 刪除所有字符
cout<<"str="<<str<<endl;
輸出結果:str=gi me
str=gi
str=
9.查找
string str("Hello worldw");
int m = str.find('w',0); // 從str起始位置開始查找w字符
cout<<"m="<<m<<endl;
int n = str.find_first_not_of('w',0); // 查找str起始位置開始不是w的字符
cout<<"n="<<n<<endl;
int k = str.find_first_of('w',0); // 從str起始位置開始查找第一個w字符
cout<<"k="<<k<<endl;
int l = str.find_last_of('w'); // 查找最后一個w的位置
cout<<"l="<<l<<endl;
int p = str.find_last_not_of('w'); // 查找最后一個不是w的字符的位置
cout<<"p="<<p<<endl;
int q = str.rfind('w'); // 反向查找
cout<<"q="<<q<<endl;
輸出結果:m=6
n=0
k=6
l=11
p=10
q=11
10.比較
string str1 = "155";
string str2 = "52";
char c[] = "34";
int i = str1.compare(str2);
cout<<"i="<<i<<endl; // 輸出i=-1
int j = str2.compare(c); // string字符串可以與char字符比較
cout<<"j="<<j<<endl; // 輸出j=1
int l = str1.compare(0,2,str2); // 比較前兩個字符
cout<<"l="<<l<<endl; // 輸出l=-1;
int k = str1.compare(1,1,str2,0,1); // str1下標為1位置字符與str2下標為0位置字符比較
cout<<"k="<<k<<endl; // 輸出k=0
int m = str1.compare(1,1,c,0,1);
cout<<"m="<<m<<endl;// 輸出m=1
int n = str1.compare(1,1,c,1);
cout<<"n="<<n<<endl; // 輸出n=1
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<<endl;
輸出結果:ch2=four
string交換:
string str1 = "four";
string str2 = "";
str1.swap(str2);
cout<<"str2="<<str2<<endl;
輸出結果:str2=four
以上,整理自《范磊C++視頻》筆記