mfc-ml

2004年07月

30

[mfc 49428] Re: stringクラス

まつもとです。

In "[mfc 49423] Re: stringクラス"
Fujisawa Yohei wrote:
> strdup()初めて知りました。
> 複製・・・するみたいですね。
> 戻り値がLPTSTRなのはいいのですけど、引数もLP
> TSTRらしいですけど、stringってのはそれだけでstrin
> g型なのですよね?
> ん~ これでいい理由も実はよく分からなかったりし
> ます。^^;
> stringってのがよく分かっておりませんものでして・・・
> すいません。。。


# 馬鹿にするな!と怒られそうですが

C/C++ において文字列とは Null文字('\0') を終端とする char の配列を
意味します。文字列というデータ型があるわけではありません(VBのよ
うに 文字列 = string型 ではない)。CString や std::string は、char
配列としての文字列の取り扱いを簡単に(または安全に)行うための便利
クラスでしかありません。

↑というのは理解されてますよね。

# ちょっと過去ログ検索かけたら まだVC始めて半年くらいらしいので、も
  しかしたらその辺を誤解してるのかもと思って。。。


---
松本 弘之
30

[mfc 49427] Re: 文字コードについて

>検索キーワード:IA5 キャラクターコード
>検索エンジン:google
>http://www.ntt-east.co.jp/ISDN/tech/spec/3.5pdf/3-f19.pdf
>一発目にヒットしました。
googっていたんですが、見落としていました。
まさしくNTT関連の資料でIA5にはまってしまいました。

>IA5 は7ビットコードで、漢字は、SO/SI を使って表現する
>って書いてあります。漢字とは書いてないですね。半角カナ文字
>が来ないなら、SO/SI をそのまま漢字の契機にすれば良いかと。
>
>SJIS で 「ABあCD」は、
>JIS だと「AB@ws*CD」みたいになります。@ がSO で、* が SI
>のつもりです。

EUC-8か何かと思い込んでました。
解決しそうです、ありがとうございました。

-柴田-
30

[mfc 49426] Re: stringクラス

Fujisawa Yoheiさんの<002501c475d0$ed165e50$0100a8c0@FUJICHAWAX>から
>戻り値がLPTSTRなのはいいのですけど、引数もLP
>TSTRらしいですけど、stringってのはそれだけでstrin
>g型なのですよね?

 ん?strdup の引数は const char * ですよ。
 std::string はおっしゃるとおり std::string 型ですが、
std::string.c_str() は、const char * を返すメンバですよ。

>stringってのがよく分かっておりませんものでして・・・
>すいません。。。

 std::string は、CString と同じく文字列を操作するクラスライブラ
リだと思っていればいいんじゃないんでしょうか?

-- 
電柱一家
mailto:m...@denchu.jp
30

[mfc 49425] Re: stringクラス

こなです。

ん?
  char *p2 = strdup(strTmp.c_str());
はコードとしては正しいですが元の目的は達成できているのでしょうか?
あくまで複製へのポインタなんで、p2に対して何を行っても元のstrTmpは
変更されません。

-- 
こな <k...@yahoo.co.jp>
30

[mfc 49423] Re: stringクラス


電柱一家様。
お世話になっております。 藤沢です。

> >これ無理やりキャストして動いちゃいましたけど、
> >駄目なんですかね・・・
> >constだから
> >char *p2 = (char*)strTmp.c_str();
> >でもいいやとか思ってました・・・けど。
>
>  駄目です。絶対に駄目です。動くけど駄目です。
>  うちの会社でそんなソースを書いたら椅子が飛びます。
>  ついでにバケツに水をいれて廊下に立たせます。
>
>  どーせやるなら
>  char *p2 = strdup(strTmp.c_str());
>  とか。
>  free するのが面倒なのであれば std::vector<char> を使うとか。

^^;
御教授ありがとうございます。
strdup()初めて知りました。
複製・・・するみたいですね。
戻り値がLPTSTRなのはいいのですけど、引数もLP
TSTRらしいですけど、stringってのはそれだけでstrin
g型なのですよね?
ん~ これでいい理由も実はよく分からなかったりし
ます。^^;
stringってのがよく分かっておりませんものでして・・・
すいません。。。

このあたりは自分で頭を鍛えてみようかと思います。

>  キャストは警告やエラーを消すための道具ではありません:-p

ごもっともです。
精通しているかたがおられると勉強になります。
記事検索
Amazon.co.jp
  • ライブドアブログ