• ベストアンサー

文字列格納について・・・

c++ BuilderでMemo1に文字列を”あいうえお”と入力したら、aaa[1]=あ aaa[2]= い aaa[3]=う といった風に格納したいのですが、うまくいきません。どなたか助言をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#57148
noname#57148
回答No.2

CSstring、ISstringはよく知りませんが、Ansistringはクラスです。調べてみたところchar*との相互変換を行うメソッドがあるので、それを使ってください。具体的には、以下の様な感じでしょうか。 char *str; str=Memo1->Text.c_str(); 領域は確か動的に確保されたものと思います。メソッド自体はMemo->とかすれば、名前が表示されるので、その名前をヘルプファイル等と照らし合わせると良いかと思います。また、文字列リストとしてAnsiString型の文字列を複数格納することが出来るクラスで、TStringsクラスというものもあり、使いようによっては便利かと思いますのでそちらも参考にしてみて下さい。

nkonnkon
質問者

お礼

わざわざ調べてまでいただき本当にありがたく思います。因数にある領域に文字列ポインタを返す形式などで実現できるみたいなので試してみようと思います。IMTさんの助言はわかりやすいので是非また機会があれば、助言していただけると幸いです。

その他の回答 (1)

noname#57148
noname#57148
回答No.1

 まず、Memo1のコンポーネントにどの様なメンバ、メンバ関数があるのかを勉強しましょう。その上で、C++Builder6では文字列の処理にAnsiString型を用いています。使い勝手はCでの文字列処理より幾分良いかと思います。次に、その勉強をしてみてください。  自分もC++Builder6.0をよく使っていますが、コンポーネントを使う上では、そのクラス構成をよくおさえておく事が上達の第一歩かと思います。この場合、そこをおさえておけば問題ない疑問かと思います。  最近、GUIデザインでコードを書かない為、細かい処理は覚えていませんが、どうしてもだめな場合はもう少しつっ込んだアドバイスもしますので、追記お願いします。

nkonnkon
質問者

お礼

アドバイスありがとうございます。自分で実際に調べてみた結果もAnsiStringという関数を使う方法がありました。 CSstringやISstringなど分からないことが多いので勉強してみようと思います。どうしても駄目だったときはまた、質問させていただくので、そのときはまた助言をお願いします。

関連するQ&A