[C++入門から放棄-02]C++STLのstring
19416 ワード
C++STLはstring基本文字列シリーズコンテナを提供して文字列を処理し,stringを文字列クラスとして理解してもよい.ゆっくりマスターすると、使い勝手がいいことに気づきます.
stringは、追加、削除、置換、検索、比較など多くの方法を提供します.
[stringオブジェクトの割り当て]1.文字列オブジェクトに直接2を割り当てる.文字ポインタで文字列オブジェクトに値を割り当てる
[stringオブジェクトの末尾に文字を追加]前に書いたvectorを見たら、stringのいくつかの方法はvectorと同じです.
stringオブジェクトの末尾にcharを追加し、+オペレータでいいです.
[2つのstringオブジェクトの接続]1.直接+オペレータ2を使用する.append()メソッドの使用
[stringオブジェクトの挿入文字操作]
[stringオブジェクトにアクセスする要素]は下付き文字でアクセスし、下付き文字は0からカウントされ、stringオブジェクトの要素は1つの文字、すなわちcharである
[stringオブジェクト要素を削除]1.文字列stringオブジェクトを空にし、空の文字列を直接割り当てることができます.erase()メソッドを使用すると、要素または区間の要素を削除できます.
[stringオブジェクトで要素またはサブストリングを検索]find()メソッドを使用して、文字列の最初の文字要素またはサブストリングを検索します.戻り値を検索し、戻り値を検索できません4294967295
[stringの置換操作]replace()法を用い,replace()のリロード関数は複数あり,よく用いられるのは1,2個である.
[stringの逆配列操作]
[stringオブジェクトの比較]stringオブジェクトはcompare()メソッドを使用して他の文字列と比較できます.文字列AとBを仮定し、AがBより大きい場合は1を返し、AがBより小さい場合は-1を返し、AとBが同じ場合は0を返す
[stringオブジェクトをvector要素として]文字列配列に類似
[stringオブジェクトのデジタル化処理]いくつかのstringは純粋な数字で、高精度のデータで、各ビットを分離する必要があります.私たちは高精度のデータを文字列として処理することができます.
[stringオブジェクトと文字配列の相互操作]stringと文字配列の相互変換と区別を説明するコード
[stringオブジェクトとsscanf関数]sscanf()は便利で、文字列を必要に応じてサブ列に分離することができます.
[stringオブジェクトと数値の相互変換]stringオブジェクトと数値の間に相互変換が必要
stringは、追加、削除、置換、検索、比較など多くの方法を提供します.
[stringオブジェクトの割り当て]1.文字列オブジェクトに直接2を割り当てる.文字ポインタで文字列オブジェクトに値を割り当てる
#include
#include
#include
using namespace std;
int main()
{
string s;
//
s = "Hello, C++STL.";
cout<char ss[5000];
//scanf() cin
//scanf() c
scanf("%s", &ss);
// string
s = ss;
//
cout<return 0;
}
[stringオブジェクトの末尾に文字を追加]前に書いたvectorを見たら、stringのいくつかの方法はvectorと同じです.
stringオブジェクトの末尾にcharを追加し、+オペレータでいいです.
#include
#include
using namespace std;
int main()
{
string s;
s = s + 'a';
s = s + 'b';
s = s + 'c';
cout<return 0;
}
[2つのstringオブジェクトの接続]1.直接+オペレータ2を使用する.append()メソッドの使用
#include
#include
using namespace std;
int main()
{
string s;
s = s + "abc";
s = s + "123";
cout<string ss;
ss.append("abc");
ss.append("123");
cout<return 0;
}
[stringオブジェクトの挿入文字操作]
#include
#include
using namespace std;
int main()
{
string s;
s = "123456";
//
string::iterator it;
//
it = s.begin();
// 'p' 1 , 0
s.insert(it+1, 'p') ;
cout<return 0;
}
[stringオブジェクトにアクセスする要素]は下付き文字でアクセスし、下付き文字は0からカウントされ、stringオブジェクトの要素は1つの文字、すなわちcharである
#include
#include
using namespace std;
int main()
{
string s;
s = "abc123456";
//
cout<0]<return 0;
}
[stringオブジェクト要素を削除]1.文字列stringオブジェクトを空にし、空の文字列を直接割り当てることができます.erase()メソッドを使用すると、要素または区間の要素を削除できます.
#include
#include
using namespace std;
int main()
{
string s;
s = "abc123456";
string::iterator it = s.begin();
s.erase(it+3);
cout<4);
cout<return 0;
}
[stringオブジェクトで要素またはサブストリングを検索]find()メソッドを使用して、文字列の最初の文字要素またはサブストリングを検索します.戻り値を検索し、戻り値を検索できません4294967295
#include
#include
using namespace std;
int main()
{
string s = "cat dog cat";
// 'c',
cout<'c')<// 'cat',
cout<"cat")<// "STL", , , 4294967295
cout<"STL")<return 0;
}
[stringの置換操作]replace()法を用い,replace()のリロード関数は複数あり,よく用いられるのは1,2個である.
#include
#include
using namespace std;
int main()
{
string s = "abc123456";
// 3 , 3 "good" , 0
s.replace(3, 3, "good");
cout<return 0;
}
[stringの逆配列操作]
#include
#include
#include
using namespace std;
int main()
{
string s = "123456789";
reverse(s.begin(), s.end());
cout<return 0;
}
[stringオブジェクトの比較]stringオブジェクトはcompare()メソッドを使用して他の文字列と比較できます.文字列AとBを仮定し、AがBより大きい場合は1を返し、AがBより小さい場合は-1を返し、AとBが同じ場合は0を返す
#include
#include
using namespace std;
int main()
{
string s = "cat dog cat";
//s "cat" , 1
cout<"cat dog")<//s "cat dog cat" , 0
cout<"cat dog cat")<//s "dog" , -1
cout<"dog")<return 0;
}
[stringオブジェクトをvector要素として]文字列配列に類似
#include
#include
#include
#include
using namespace std;
int main()
{
vector<string> v;
v.push_back("CaiCai");
v.push_back("At");
v.push_back("Ningbo");
cout<0]<cout<1]<cout<0][0]<cout<1][1]<cout<2].length()<return 0;
}
[stringオブジェクトのデジタル化処理]いくつかのstringは純粋な数字で、高精度のデータで、各ビットを分離する必要があります.私たちは高精度のデータを文字列として処理することができます.
#include
#include
using namespace std;
int main()
{
string s = "1234059";
int i, sum = 0;
for(i = 0; i < s.length(); i ++)
{
if(s[i] == '0')
sum += 0;
else if(s[i] == '1')
sum += 1;
else if(s[i] == '2')
sum += 2;
else if(s[i] == '3')
sum += 3;
else if(s[i] == '4')
sum += 4;
else if(s[i] == '5')
sum += 5;
else if(s[i] == '6')
sum += 6;
else if(s[i] == '7')
sum += 7;
else if(s[i] == '8')
sum += 8;
else if(s[i] == '9')
sum += 9;
}
cout<<sum<return 0;
}
[stringオブジェクトと文字配列の相互操作]stringと文字配列の相互変換と区別を説明するコード
#include
#include
#include
using namespace std;
int main()
{
string s;
char ss[100];
//
scanf("%s", &ss);
//
s = ss;
// printf , c_str()
printf(s.c_str());
cout<// printf
printf("%s", ss);
cout<cout<cout<return 0;
}
[stringオブジェクトとsscanf関数]sscanf()は便利で、文字列を必要に応じてサブ列に分離することができます.
#include
#include
#include
using namespace std;
int main()
{
string s1, s2, s3;
char sa[100], sb[100], sc[100];
// ,
sscanf("abc 123 pc", "%s %s %s", sa, sb, sc);
s1 = sa;
s2 = sb;
s3 = sc;
cout<" "<<" "<" "<// ,
int a, b, c;
sscanf("123 456 789", "%d %d %d", &a, &b, &c);
cout<""<"<// を に し、 り を、$
int x, y, z;
sscanf("4,5$6", "%d,%d$%d", &x, &y, &z);
cout<" "<" "<return 0;
}
[stringオブジェクトと数値の相互変換]stringオブジェクトと数値の間に相互変換が必要
#include
#include
#include
#include
using namespace std;
//c++ : string
string convertToString(double x)
{
ostringstream O;
if(O << x)
return O.str();
return "conversion error";
}
//c++ : string
double convertFromString(const string& s)
{
istringstream i(s);
double x;
if(i >> x)
return x;
return 0.0;
}
int main()
{
char b[10];
string a;
sprintf(b, "%d", 1975);
a = b;
cout<// をstringに する 2の :C++
string cc = convertToString(1976);
cout<//stringを に する :C++
string dd = "2015";
int p = convertFromString(dd) + 2;
cout<return 0;
}