c++での文字列の扱いについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
erin

c++での文字列の扱いについて

#1

投稿記事 by erin » 17年前

はじめまして。
最近c++をはじめたのですが、過去にやっていたperlでは
普通に変数に文字列を代入することができていました。
( a = "あいうえお" のように)
自分で調べたところ、文字列を代入するにはchar型の変数を作り
strcpy( a , "あいうえお");
とやれば代入できるというところまではわかったのですが、
intのaとbという変数に数値が入っているとして、
「aの値,bの値」というようにaとbの間にコンマをはさんで変数に入れるにはどうすればいいのでしょうか?

管理人

Re:c++での文字列の扱いについて

#2

投稿記事 by 管理人 » 17年前

 
コンマを挟んで変数に入れる?
文字列の話と最後の話は直接関係無いんですしょうか?

int a = 10 , b = 20;

とか

int a,b;
a = 10 , b = 20;

とか

int a,b;
a=10; b= 20;

とか色々かけると思いますが、こういう意味ではないのでしょうか?
 

box

Re:c++での文字列の扱いについて

#3

投稿記事 by box » 17年前

int a = 10;
int b = 20;

であるとして、
"10,20"
という文字列を組み立てたい、ということですか?
もしそういうことでしたら、

char s[80]; // 80は結果を格納するのにじゅうぶんな大きさであること
sprintf(s, "%d,%d", a, b);

とすれば、配列sの中身が 10,20 となります。

別の話でしたらフォローしてください。

管理人

Re:c++での文字列の扱いについて

#4

投稿記事 by 管理人 » 17年前

なるほど、int型の数値を文字列に変換するということでしょうか?

たかぎ

Re:c++での文字列の扱いについて

#5

投稿記事 by たかぎ » 17年前

C++では、普通に変数に文字列を代入できますよ。
std::string a;
a = "あいうえお";
コンマを挟んで云々については、いくつか方法がありますが...
int a = 123;
int b = 456;
std::string c;
std::ostringstream oss;
oss << a << ',' << b;
c = oss.str();
というのが最も一般的な方法です。
ほかには、
int a = 123;
int b = 456;
std::string c;
c = boost::str(boost::format("%d,%d") % a % b);
といった方法もあります。
他にも方法がありますが、もっと面倒になりますね。
# 例外安全のことまで考えると、必ずしも面倒になるとはいえませんが...

erin

Re:c++での文字列の扱いについて

#6

投稿記事 by erin » 17年前

書き方が悪かったですね、すみません。
boxさんの言っているように"10,20"という風にしたいということでした。

お三方とも返信ありがとうございます。
sprintfが一番簡単そうなのでそれを使ってみようと思います。
たかぎさんの方法も、今後使うことがでてきそうなので覚えておくことにします。
ありがとうございました。

閉鎖

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