C++漏れ補充——String(1)

774 ワード

次のプログラム(本プログラムはC++Primer Plus第6版で見た)を見て、
#include
#include
#include

int main(){

	using namespace std;
	char charr[20];
	string str;

	cout << "Legth of string in charr before input:"
		<< strlen(charr) << endl;
	cout <

出力結果:
入力前の配列charrの文字列長は23で、charrが初期化されていないため、関数strlen()は配列の最初の要素からバイト数を計算し、空の文字に遭遇したことを知っています.
以下がポイントです.
cin.getline(charr,20)という句点表現はgetline()がistream累のクラスメソッドであり,第1のパラメータがターゲット配列であり,第2のパラメータが配列長であり,境界を避けることを示す.
getline(cin,str)は句点表現法を使用していません.getline()はクラスメソッドではなく、最初のパラメータはどこから入力を検索するか、2番目のパラメータはターゲットパラメータを表します.この関数式stringクラスの友元関数.
 
また、getline(cin,str)を使用して文字列を入力して車に戻り、車に戻ってから次のプログラムを自分で実行しなければならない現象もあります.