string
類(lèi)
1. string
類(lèi)常用方法
int capacity() const; // 返回當(dāng)前容量
int max_size() const; // 返回string對(duì)象可存放最大長(zhǎng)度
int size() const; // 返回當(dāng)前字符串大小
int length() const; // 當(dāng)前字符串長(zhǎng)度
bool empty() const; // 當(dāng)前字符串是否為空
void resize(int len, char c); // 置字符串大小為len,多去少補(bǔ),不夠用c補(bǔ)
2. string
類(lèi)常用方法2
string& insert(int p, string& s); // 在p位置插入字符串s
string& replace(int p, int n, const char* s); // 刪除從p開(kāi)始的n個(gè)字符秒旋,然后在p處插入s。
string& erase(int p, int n); // 刪除從p開(kāi)始的n個(gè)字符沦偎,返回刪除后的字符串
string substr(int pos=0, int n = npos) const; // 返回pos開(kāi)始的n個(gè)字符組成的字符串。
void swap(string& s2); // 交換當(dāng)前字符串與s2的值咳蔚。
string& append(const char* s); // 把字符串s連接到當(dāng)前字符串的結(jié)尾豪嚎。
void push_back(char c); // 當(dāng)前字符串尾部添加c。
const char* data() const; // 返回一個(gè)以非null結(jié)尾的c字符數(shù)組谈火。
const char* c_str() const; // 返回一個(gè)以null結(jié)尾的c字符數(shù)組侈询。
3. string
類(lèi)的查找
size_type find(const basic_string &str, size_type index); // 返回str在字符串中第一次出現(xiàn)的位置,從index處開(kāi)始查找糯耍,若沒(méi)找到則返回string::npos扔字。
size_type find(const char* str, size_type index);
size_type find(const char* str, size_type index, size_type length);
size_type find(char ch, size_type index);
判斷字符串a(chǎn)是否包含字符串b,使用
(a.find(b) != string::npos)
温技。at(size_type index)
: 返回一個(gè)指向index
處字符的引用革为,若不在字符串范圍內(nèi),返回一個(gè)out_of_range
異常舵鳞。size_type rfind(const basic_string& str, size_type index)
:返回最后一個(gè)與str中的某個(gè)字符匹配的字符震檩,從index開(kāi)始查找。如果沒(méi)找到就返回string::npos蜓堕。size_type find_first_of(const basic_string& str, size_type index=0)
:查找在字符串中第一個(gè)與str中的某個(gè)字符匹配的字符抛虏,返回它的位置。搜索從index開(kāi)始套才,如果沒(méi)找到就返回string::npos迂猴。size_type find_first_not_of(const basic_string& str, size_type index=0)
:在字符串中查找第一個(gè)與str中的字符都不匹配的字符,返回它的位置背伴。搜索從index開(kāi)始错忱。如果沒(méi)找到就返回string::nops。size_type find_last_of(const basic_string& str, size_type index=0)
:在字符串中查找最后一個(gè)與str中的某個(gè)字符匹配的字符挂据,返回它的位置。搜索從index開(kāi)始儿普。如果沒(méi)找到就返回string::nops崎逃。size_type find_last_not_of(const basic_string& str, size_type index=0)
: 在字符串中查找最后一個(gè)與str中的字符都不匹配的字符,返回它的位置眉孩。搜索從index開(kāi)始个绍。如果沒(méi)找到就返回string::nops勒葱。
4. 記錄兩個(gè)C++切片字符串的方法
- (1)對(duì)單字符的切片
void splitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos1 = 0;
pos2 = s.find(c);
while (pos2 != string::npos) {
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if (pos1 != s.length())
v.push_back(s.substr(pos1));
}
- (2) 對(duì)字符串中空格進(jìn)行切片方法2
string A; // 待切片字符串
istringstream is(A);
string temp;
while (is >> temp) {
...
}