1. 程式人生 > >演算法筆記-6.3 string用法

演算法筆記-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)
*/