2012-04-18 35 views
0

私はu_char型の*へのconst文字列を変換するにはどうすればよいの二つの機能変換文字列*

foo(const string &value) 
{ 
    bar(...) 
} 

bar(const u_char *value, size_t len) 
{ 
    // do something 
} 

がありますか?私はsizeof()関数を使ってsize_tを得ることができると信じています。

ヘルプは大歓迎です。

+0

'uchar'との間に違いはあり' u_char'、 '符号なしchar'の両方の型の別名があると? – Mankarse

+0

申し訳ありませんが、私はucharを意味し、ucharを意味しませんでした。私はコードを編集しました。私はucharのようなものがあるとは思わない。 – user1314238

+1

@ user1314238:標準のC++には 'u_char'というものはありません。 'u_char'型は何ですか? –

答えて

2

変換。

u_charの変換に関して、私はそれが異なるとは思わない。

これはあなたを助ける:MSDN string converison

+0

ありがとう!私はちょうど1分前に文字列apiを見ながらこれを考え出しました。 また、結果を(u_char *) – user1314238

+0

にタイプキャストする必要があります。これは私の喜びです。 – Erwald

1

c_str()関数を使用して、std :: stringのCスタイルの文字列表現を取得できます。 bar((u_char)value.c_str(),value.length())に電話するだけです。 Cスタイルの文字列については、signednessは重要ではありません。次のように

+0

'bar'は' u_char'ではなく 'u_char const *'を取るので、これは間違っています。 – Mankarse

+0

申し訳ありませんが、私は間違って 'u_char'が' unsigned char'と同じであると仮定しました – JosephH

1

barは(u_charcharのいくつかの種類であると仮定して)呼び出すことができます*はc_str()を使用して行われcharへの文字列から

bar(reinterpret_cast<u_char const*>(value.c_str()), value.size())