2018年03月02日
《その315》 stringクラス(1)
stringクラス
stringクラスは、クラステンプレート basic_string<> を char型用に特殊化したクラスです。
string というのは basic_string<char> の typedef名です。
typedef basic_string<char> string
メンバ関数 find
該当文字列の最初の出現位置を返します。文字列が見つからないときはメンバ定数 npos の値を返します。
メンバ定数 npos
npos の値は、符号無し整数型であるsize_type型で -1 と定義されています。下記のプログラムでも確認できますが、符号無し整数型の -1 というのは、実際には、その符号無し整数型が表現できる値の最大値です。
size_type型
size_type型は、文字列の長さや文字列内の位置を表す添字などに用いられる符号無し整数型です。
処理系により異なりますが、unsigned int や unsigned long int などの同義語です。
#include <string>
#include <iostream>
using namespace std;
int main() {
cout << "string s = \"abcdefghijklmnopqrstuvwxyz\""
<< '\n';
string s = "abcdefghijklmnopqrstuvwxyz";
cout << '\n';
cout << "s.find('f') … " << s.find('f') << '\n';
cout << "s.size() … " << s.size() << '\n';
cout << '\n';
cout << "s.find('F') … " << s.find('F')
<< '\n';
cout << "string::npos … " << string::npos << '\n';
cout << '\n';
cout << "numeric_limits<unsigned int>::digits … "
<< numeric_limits<unsigned int>::digits
<< '\n';
cout << "numeric_limits<unsigned int>::max() … "
<< numeric_limits<unsigned int>::max()
<< '\n';
cout << '\n';
cout << "numeric_limits<unsigned long>::digits … "
<< numeric_limits<unsigned long>::digits
<< '\n';
cout << "numeric_limits<unsigned long>::max() … "
<< numeric_limits<unsigned long>::max()
<< '\n';
cout << '\n';
cout << "unsigned n = -1;" << '\n';
unsigned n = -1;
cout << "n … " << n << '\n';
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7383671
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック