VC++2005ExpressEdition + PlatformSDKを使用しています.
String型をchar型配列に変換したいと思っています.
自分なりに調べてみたのですが,
> String^ str = gcnew String("test");
> char chr[5];
> chr = str->ToCharArray();
などとしても次のようなエラーが出ます.
> error C2440: '=' : 'cli::array<Type,dimension> ^' から 'char [5]' に変換できません。
String型からchar型配列への変換はどのようにすればいいのでしょうか.
No.1
- 回答日時:
がると申します。
ちとWinodows系は不得手なので恐縮ではありますが。
UNIX系ですと、c_str()というメソッドを使って、ポインタの取得が出来ます。
ですので、例えば
string str = new string("test");
char chr[5];
memset(chr, '\0', sizeof(chr));
memcpy(chr, str.c_str(), str.size());
という方法がつかえます(charのサイズだのなんだのエラーチェック周り思いっきり割愛しまくってますが)。
No.2
- 回答日時:
ToCharArray は、Char (wchar_t[]) を返しますからダメですよね。
GetBytes を使うと、Byte (unsigned char[]) を返しますから
なんとかなるんじゃないでしょうか
一般的に、System::String は、ユニコードですからchar に変換する意味がよくわかりません。
どっちにしても、
char chr[5] に、
chr =
とはできないと思います。
この回答への補足
コメントありがとうございます.
テキストボックスにはホスト名が入っていると仮定していて,そのホスト名に対して gethostbyname でアドレスを返したいと思っています(それを利用してソケットを使いたい,というのが目的です).
> struct hostent FAR * gethostbyname (const char FAR * name);
なので,Stringをcharに変換できれば,と思っています.
No.3ベストアンサー
- 回答日時:
>gethostbyname でアドレスを返したい
Dns::GetHostByName スタティックメソッドを使えば良いです。
http://msdn2.microsoft.com/ja-jp/library/system. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# char string[100]; int c, i=0; while( (c=getchar()) 2 2022/05/30 21:41
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- Visual Basic(VBA) 該当セルに行替えを含むデータを命令文に入れて、2行に表示したい。 5 2023/07/20 11:51
- C言語・C++・C# C言語 少しの疑問 4 2022/11/08 02:48
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列内の数字削除
-
C言語のintとcharの違いってな...
-
文字列str内の全ての数字を...
-
C言語で文字列をかえす正しい書...
-
SetWindowTextについて。
-
char*を初期化したいのですが
-
構造体が戻り値の関数について...
-
strcat関数を自作したいです
-
CStringからchar*への型変換に...
-
C言語を用いた環境変数の作成/...
-
C言語でポインターで詰まってい...
-
C言語にて構造体のメンバがNULL...
-
char型にint型の数値を代入する。
-
new charとnew char[N]の違いは?
-
char 文字列型 の表現範囲が-12...
-
C言語において、以下の条件で...
-
p = (char **)*p の意味
-
文字の代入とコピーについて
-
ポインタを使用 [数字列を数値...
-
文字列の途中から途中までを抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
小数点入りの文字列をfloat型に...
-
C言語のプログラムについてです
-
strcat関数を自作したいです
-
fstream型オブジェクトを関数の...
-
new charとnew char[N]の違いは?
-
DWORDとcharの変換
-
文字列の途中から途中までを抽出
-
char 文字列型 の表現範囲が-12...
-
const char* s1とただのchar s1...
-
wsprintf( ポインタ , "%d" , "...
-
c言語でポインタ変数を用いた配...
-
char型にint型の数値を代入する。
-
C言語で文字列をかえす正しい書...
-
C++17で、unsigned char * 配列...
-
共用体について
-
エクセルのMID関数は、C言語では?
おすすめ情報