C++Primer学習ノート(4)-標準ライブラリstringタイプ
ノート3が空いているのは、3の内容が4より先だからだが、教科書はそうは思わないようだ.
stringオブジェクトの定義と初期化
いくつかの方法:
stringオブジェクトの読み書き
stringタイプの入力オペレータ:
1.先頭のすべての空白文字(スペース、改行、タブなど)を読み取り、無視します.
2.再びスペースが表示されるまで文字を読み込みます
1.読み出し位置数のstringオブジェクト
クラス比文字入力は、操作全体が文字列であるだけです.
2.getlineでテキスト全体を読み込む
行全体が読み込まれるため、改行は含まれません.
たとえば、次のような手順があります.
stringオブジェクトの操作
s.empty()
sが空白の場合はtrueを返し、そうでなければfalseを返します.
s.size()
s中の文字の個数を返します
s[n]
sの位置nの文字を返し、位置は0からカウントします.
s1+s2
s 1とs 2を新しい文字列に接続して新しい文字列を返します
s1=s2
s 1の内容をs 2のコピーに置き換える
v1==v2
v 1とv 2の内容を比較し、等しい場合はtrueを返します.そうでない場合false
!=,<,<=,>,>=
本来の意味を保つ.
例:
上記の結果は1です.
1.stringのsizeとempty操作
次の文を使用して、空かどうかを判断します.
2.string::size_typeタイプ
これはタイプで、unsignedタイプで、下付きの操作に使用できます.
3.stringオブジェクトから文字を取得する
次の表のオペレータ([])を使用します.次の例を参照してください.
上記の例では、次の機能を実現しました.
1.文字列strを初期化する.
2.文字列奇数ビット文字をxに変換する.
3.個々の出力
4.出力全体.
stringオブジェクトの定義と初期化
いくつかの方法:
string s1; //s1 is empty
string s2(s1); //s2 is a copy of s1
string s3("value"); //s3 is initialized to a copy of literal value of "value"
string s4(n,'c') //s4 is initialized to a copy of n 'c's
stringオブジェクトの読み書き
stringタイプの入力オペレータ:
1.先頭のすべての空白文字(スペース、改行、タブなど)を読み取り、無視します.
2.再びスペースが表示されるまで文字を読み込みます
1.読み出し位置数のstringオブジェクト
クラス比文字入力は、操作全体が文字列であるだけです.
2.getlineでテキスト全体を読み込む
行全体が読み込まれるため、改行は含まれません.
たとえば、次のような手順があります.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
while(getline(cin,line))
{
cout<<line<<endl;
}
}
stringオブジェクトの操作
s.empty()
sが空白の場合はtrueを返し、そうでなければfalseを返します.
s.size()
s中の文字の個数を返します
s[n]
sの位置nの文字を返し、位置は0からカウントします.
s1+s2
s 1とs 2を新しい文字列に接続して新しい文字列を返します
s1=s2
s 1の内容をs 2のコピーに置き換える
v1==v2
v 1とv 2の内容を比較し、等しい場合はtrueを返します.そうでない場合false
!=,<,<=,>,>=
本来の意味を保つ.
例:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a("aaa");
string b("a");
bool comparer(a>b);
cout<<comparer<<endl;
}
上記の結果は1です.
1.stringのsizeとempty操作
次の文を使用して、空かどうかを判断します.
if(a.empty())
//ok:empty
2.string::size_typeタイプ
これはタイプで、unsignedタイプで、下付きの操作に使用できます.
3.stringオブジェクトから文字を取得する
次の表のオペレータ([])を使用します.次の例を参照してください.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str("some string");
for(string::size_type ix = 0; ix != str.size()-1; ix+=2)
{
str[ix]='x';
}
for(string::size_type ix = 0; ix != str.size(); ++ix)
{
cout<<str[ix]<<endl;
}
return 0;
}
上記の例では、次の機能を実現しました.
1.文字列strを初期化する.
2.文字列奇数ビット文字をxに変換する.
3.個々の出力
4.出力全体.