ページ 11

DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:10
by usami
とても初歩的な質問なのですが、
文字列を格納する便利な変数とかないのですか?
(『”~”』を格納できる変数)
教えてください。

たとえばプログラムとしてはこんな感じ?

#define STRING "こんにちは"

(←ここ) str;
//char str; だと、文字列の長さの関係で、不具合があるっぽいです。
int color=GetColor(255,255,255);

DrawString(0, 0, str, color);


あるいはDxLibの関数で、
LPCTSTR型を使ったりするのでも、構いません。
Windowsプログラミングだと、フォントとかHDCとか面倒なので、
是非楽ちんがしたいのです。

その他、冴えた方法があれば、是非教えてください。

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:30
by チルチル
char *型でどうでしょうか?

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:33
by usami
ありがとうございます。
うまくいきました。

char* str=STRING;

是非また教えてください。

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:40
by チルチル
でも冷静に考えたら、これはscanf関数とかには使えないかもしれません・・

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:51
by バグ
std::stringでは駄目なのかな?(^_^;)

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 18:56
by usami
…ですか。
でも、とりあえず、現状では、計算結果などを扱う文字列としてでなく、
単純に画面に表示することが目的なので無問題です。

変数に格納できたら、ケース分岐とかで、いろんなところが楽ちんかなー、とか考えていただけなので。

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 19:04
by usami
> std::stringでは駄目なのかな?(^_^;)

C++は勉強不足でよくわからないです。すいません。
どういう風に使うのか詳しく教えていただけたらと思います。



あと、さきの回答が遅れたためちぐはぐになっております、見苦しくてすいません。

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 21:34
by バグ
std::stringの簡単なサンプルを書いてみました。
慣れるまでは分かりづらいかもしれませんが、便利ですよ。
#include <cstdio>
#include <iostream>
#include <string>

int main(void)
{
	// strを"01234"で初期化する
	std::string str("01234");

	// strをcoutを使用して表示
	std::cout << str << std::endl;

	// strをprintfを使用して表示
	// c_str()関数を使用すると、std::string内の文字列へのポインタ(const char*型)を取得できる
	printf("%s\n", str.c_str());

	// strの最後尾へ文字列"56"を付け足す
	str += "56";
	std::cout << str << std::endl;

	// 比較用文字列を用意する
	std::string cmp("0123456");

	// 2つの文字列を比較してみる
	if (str == cmp)
	{
		std::cout << "同じです" << std::endl;
	}
	else
	{
		std::cout << "違います" << std::endl;
	}

	return 0;
}

Re:DxLibでの文字列変数

Posted: 2009年8月24日(月) 23:45
by usami
丁寧な回答ありがとうございます。
とてもわかりやすかったです。

現状、DxLib=C,Windowsプログラミングをメインにしているので、
なかなかC++までは手が届かないのですが、
今後の参考にさせていただきたいと思います。