演算法筆記-6.3 string用法
#include<stdio.h> #include<iostream> #include<string>//!!!!!!注意不是string.h using namespace std; int main(){ string str; int k; cin>>str>>k; cout<<str<<"\n"<<k<<endl; printf("%s\n",str.c_str());//可通過函式將str轉換為字元陣列進行輸出 for(int i=0;i<str.length();i++){ printf("%c",str[i]); } for(string::iterator it=str.begin();it!=str.end();it++){ printf("%c",*it); } /*printf("---------\n"); string str1="abc",str2="666"; str1.insert(2,str2); cout<<str1; return 0;*/ }
/*
-----------string相當於字串陣列--------
1.輸入輸出必須用cin和cout(檔案頭為#include<iostream>)
cin輸入 連續寫>>表示連續輸入變數
cout輸出 連續寫<<表示連續輸出變數 \n表示換行 endl也表示換行
2.string輸出的時候可以通過printf輸出 需要通過c_str()函式轉換
3.operator+= 兩個string直接拼接
string str1="abc",str2="xyz",str3;
str3=str1+str2;//str3=abcxyz
str1+=str2;//str1=abcxyz
4.compare operator 直接通過符號進行比較大小 比較規則是字元序
sting str3="abc" str4="xyz"
if(str4>=str3)printf("OK")
//輸出:OK
5.str.length()/str.size() 兩個函式基本相同 都是直接計算string的長度
6.str.insert() 插入元素
方法一:
string str1="abc",str2="kkk"
str1.insert(2,str2);//結果為abkkkc 在str1的第二位插入str2
方法二:
string str1="abc",str2="kkk"
str1.insert(str1.begin()+3,str2.begin(),str2.end());//結果為abckkk 在str1的第三位 插入str2.begin~str2.end位的元素
//裡面必須用迭代器 不能用數字表示
7.str.erase() 刪除元素
方法一:erase(it)//it為需要刪除元素的迭代器
方法二:erase(first,last)//first/last為需要刪除元素的迭代器
方法三:erase(pos,length)//pos為需要開始刪除的起始位置 length為刪除字元的個數
8.str.clear() 清空
9.str.substr(pos,len) 返回從pos號位開始、長度為len的子串
10.string::npos==-1 即當find函式失效時的返回值,預設為-1
如:if(string::npos==-1)printf("xxx");
11.str.find(str2)
如:if(str.find(str2)!=string::npos)cout<<str.find(str2)<<endl
12.str.replace(pos,len,str2) 即把str從pos號位開始、長度為len的子串替換為str2
如:str.replace(10,4,str2)
*/