Note C++ string
11533 ワード
C++stringのいくつかの操作記録
#include定義 構造 通常length、size、capacity、empty、resize、reserve push_を追加back、append、insert erase、clear、assign を削除 swap、replace を修正 find、rfind、find_を検索first_of、find_last_of string::size_type、string::npos サブストリングsubstr 反転reverse 変換大文字と小文字transform、::toupper、::tolower 比較compare to_string その他:c_str、data、copy
#include
#include
#include
int begin = 0;
int mid = 2;
int len = 3;
int end = 8;
int pos = 0;
string str = "A";
string str1(str);
string str2("A");
string str3("abcd", len); // str3 == "abc"
string str4("abcd", begin, len); // str4 = "abcd" begin ,len
string str5(len, 'a'); // len 'a'
// 2
len = str.length(); //
len = str.size(); //
int capacity = str.capacity(); //
str.resize(len); // str len , \0
str.resize(len, 'a'); // str len , 'a'
str.reserve(len); //
bool isEmpty = str.empty();
str.push_back('a');
str.append("ABC");
//
str.insert(begin, len, 'a'); // str begin len 'a'
str.insert(begin, "abc"); // begin
str.insert(begin, "abc", len); // begin "abc" len
str.insert(begin, "abc", begin, len); // begin "abc" begin ,len
//
// iterator insert(const const_iterator _Where, _CRT_GUARDOVERFLOW const size_type _Count, const _Elem _Ch)
str.insert(str.begin(), len, 'a');
// iterator insert(const const_iterator _Where, const _Iter _First, const _Iter _Last)
str.insert(str.begin(), str2.begin(), str2.end());
str.erase(mid); // mid ,
str.erase(mid, len); // mid , len
str.clear();
str.assign("abc"); // str, "abc"
str.assign("abcd", len); // , len
str.assign("abccc", begin, len); // , begin , len
str.swap(str1); // str1 str
str.replace(begin, len, "abc"); // begin , len
//size_t find(const string & str, size_t pos = 0) const;
//size_t find(const char* s, size_t pos, size_t n) const;
//size_t find(const char* s, size_t pos = 0) const;
//size_t find(char c, size_t pos = 0) const;
// pos n n
pos = str.find('a'); // , -1
pos = str.find("abc");
pos = str.find('a', begin); // begin
pos = str.find("abc", begin, len); // begin "abc" len
// ,
pos = str.rfind('a');
pos = str.rfind("abc");
pos = str.rfind('a', begin); // begin ,
pos = str.rfind("abc", begin, len);
//size_t find_first_of(const string & str, size_t pos = 0) const;
//size_t find_first_of(const char* s, size_t pos, size_t n) const;
//size_t find_first_of(const char* s, size_t pos = 0) const;
//size_t find_first_of(char c, size_t pos = 0) const;
// pos n n
//
str.find_first_of("abc");
str.find_first_of("abc", begin);
str.find_first_of("abc", begin, len);
//size_t find_last_of(const string & str, size_t pos = npos) const noexcept;
//size_t find_last_of(const char* s, size_t pos = npos) const;
//size_t find_last_of(const char* s, size_t pos, size_t n) const;
//size_t find_last_of(char c, size_t pos = npos) const noexcept;
// string::size_type
string::size_type pos = str.find(str2);
// string::npos
if (pos == string::npos) { }
//
if (!s.empty()) {
s.erase(0,s.find_first_not_of(" "));
s.erase(s.find_last_not_of(" ") + 1);
}
// string substr(size_t pos = 0, size_t len = npos) const;
// pos 。 0, 0。
// len
str2 = str.substr(begin);
str2 = str.substr(begin, len);
// algorithm
reverse(str.begin(), str.end()); //
string strTrans = "A";
transform(strTrans.begin(), strTrans.end(), strTrans.begin(), ::toupper);
transform(strTrans.begin(), strTrans.end(), strTrans.begin(), ::tolower);
// compare
// 0, ASCII
//int compare(const basic_string & s) const;
//int compare(const Ch * p) const;
//int compare(size_type pos, size_type n, const basic_string & s) const;
//int compare(size_type pos, size_type n, const basic_string & s, size_type pos2, size_type n2) const;
//int compare(size_type pos, size_type n, const Ch * p, size_type = npos) const;
str.compare("abc");
//
//std::string to_string(int value);
//std::string to_string(long value);
//std::string to_string(long long value);
//std::string to_string(unsigned value);
//std::string to_string(unsigned long value);
//std::string to_string(unsigned long long value);
//std::string to_string(float value);
//std::string to_string(double value);
//std::string to_string(long double value);
str = to_string(1);
// c_str() const char* ,
// const char* string::c_str() const
const char* strChar = str.c_str();
// const char* string::data() const
// data(): c_str() ,
strChar = str.data();
// size_type copy(_Out_writes_(_Count) _Elem* const _Ptr, size_type _Count, const size_type _Off = 0) const
char charAry[20] = { 0 };
str.copy(charAry, len, begin); // begin , len
#include
#include
#include
using namespace std;
class Solution {
public:
void Test() {
int begin = 0;
int mid = 2;
int len = 3;
int end = 8;
int pos = 0;
// 1
string str = "A";
string str1(str);
string str2("A");
string str3("abcd", len); // str3 == "abc"
string str4("abcd", begin, len); // str4 = "abcd" begin ,len
string str5(len, 'a'); // len 'a'
// 2
len = str.length(); //
len = str.size(); //
int capacity = str.capacity(); //
str.resize(len); // str len , \0
str.resize(len, 'a'); // str len , 'a'
str.reserve(len); //
bool isEmpty = str.empty();
//
str.push_back('a');
str.append("ABC");
//
str.insert(begin, len, 'a'); // str begin len 'a'
str.insert(begin, "abc"); // begin
str.insert(begin, "abc", len); // begin "abc" len
str.insert(begin, "abc", begin, len); // begin "abc" begin ,len
//
// iterator insert(const const_iterator _Where, _CRT_GUARDOVERFLOW const size_type _Count, const _Elem _Ch)
str.insert(str.begin(), len, 'a');
// iterator insert(const const_iterator _Where, const _Iter _First, const _Iter _Last)
str.insert(str.begin(), str2.begin(), str2.end());
//
str.erase(mid); // mid ,
str.erase(mid, len); // mid , len
str.clear();
str.assign("abc"); // str, "abc"
str.assign("abcd", len); // , len
str.assign("abccc", begin, len); // , begin , len
//
str.swap(str1); // str1 str
str.replace(begin, len, "abc"); // begin , len
//
//size_t find(const string & str, size_t pos = 0) const;
//size_t find(const char* s, size_t pos, size_t n) const;
//size_t find(const char* s, size_t pos = 0) const;
//size_t find(char c, size_t pos = 0) const;
// pos n n
pos = str.find('a'); // , -1
pos = str.find("abc");
pos = str.find('a', begin); // begin
pos = str.find("abc", begin, len); // begin "abc" len
// ,
pos = str.rfind('a');
pos = str.rfind("abc");
pos = str.rfind('a', begin); // begin ,
pos = str.rfind("abc", begin, len);
//size_t find_first_of(const string & str, size_t pos = 0) const;
//size_t find_first_of(const char* s, size_t pos, size_t n) const;
//size_t find_first_of(const char* s, size_t pos = 0) const;
//size_t find_first_of(char c, size_t pos = 0) const;
// pos n n
//
str.find_first_of("abc");
str.find_first_of("abc", begin);
str.find_first_of("abc", begin, len);
//size_t find_last_of(const string & str, size_t pos = npos) const noexcept;
//size_t find_last_of(const char* s, size_t pos = npos) const;
//size_t find_last_of(const char* s, size_t pos, size_t n) const;
//size_t find_last_of(char c, size_t pos = npos) const noexcept;
// string::size_type
string::size_type pos = str.find(str2);
// string::npos
if (pos == string::npos) { }
//
// string substr(size_t pos = 0, size_t len = npos) const;
// pos 。 0, 0。
// len
str2 = str.substr(begin);
str2 = str.substr(begin, len);
// algorithm
reverse(str.begin(), str.end()); //
//
string strTrans = "A";
transform(strTrans.begin(), strTrans.end(), strTrans.begin(), ::toupper);
transform(strTrans.begin(), strTrans.end(), strTrans.begin(), ::tolower);
//
// c_str() const char* ,
// const char* string::c_str() const
const char* strChar = str.c_str();
// const char* string::data() const
// data(): c_str() ,
strChar = str.data();
// size_type copy(_Out_writes_(_Count) _Elem* const _Ptr, size_type _Count, const size_type _Off = 0) const
char charAry[20] = { 0 };
str.copy(charAry, len, begin); // begin , len
// compare
// 0, ASCII
//int compare(const basic_string & s) const;
//int compare(const Ch * p) const;
//int compare(size_type pos, size_type n, const basic_string & s) const;
//int compare(size_type pos, size_type n, const basic_string & s, size_type pos2, size_type n2) const;
//int compare(size_type pos, size_type n, const Ch * p, size_type = npos) const;
str.compare("abc");
// to_string
//
//std::string to_string(int value);
//std::string to_string(long value);
//std::string to_string(long long value);
//std::string to_string(unsigned value);
//std::string to_string(unsigned long value);
//std::string to_string(unsigned long long value);
//std::string to_string(float value);
//std::string to_string(double value);
//std::string to_string(long double value);
str = to_string(1);
}
};