STLのstring型への演算子の使い方について質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

STLのstring型への演算子の使い方について質問です

#1

投稿記事 by taketoshi » 12年前

末尾に文字列を追加したくて、以下のようにテストコードを書きました
string型に+演算子を用いたら文字は追加できませんでした。

そして、関数に引数を渡すときにはstring + 文字列で渡したところ
関数側で末尾に渡した文字列を追加したデータを表示することが出来ました。

引数として渡すときstring + 文字列が有効なのはなぜでしょうか?

コード:

// string型テスト.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include<string>

using namespace std;

//string型の引数を受け取り末尾に単語を追加する
void GetStr(string str3){
	printf("str3 = %s\n",str3.c_str());
}

int _tmain(int argc, _TCHAR* argv[])
{
	string str = "test";
	string str2 = "test";

	str += "test";
	printf("str = %s %d\n",str.c_str(),str.length());

	//string型 + char文字演算子で末尾に文字を追加しようとしたが末尾には追加されない
	str2 + "U";
	printf("str2 = %s\n",str2.c_str());
	//同じ用にstring型 + char文字を渡すGetStr関数で表示すると末尾に文字が追加されている
	GetStr(str2 + "R");

	return 0;
}

/*
str = testtest 8
str2 = test
str3 = testR
続行するには何かキーを押してください . . .
*/

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: STLのstring型への演算子の使い方について質問です

#2

投稿記事 by みけCAT » 12年前

普通の整数などの+演算子と同じことです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: STLのstring型への演算子の使い方について質問です

#3

投稿記事 by softya(ソフト屋) » 12年前

引数には式を書きます。つまり、演算した結果を関数に渡すことができます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: STLのstring型への演算子の使い方について質問です

#4

投稿記事 by taketoshi » 12年前

お二方アドバイスありがとうございます。

なんか思いっきりズッコけていた気がします。

コード:

string as = str2 + "U";
これと同意なんですね。

閉鎖

“C言語何でも質問掲示板” へ戻る