0

char に渡したいさまざまなデータ型がたくさんありますが、int を渡すための通常の形式を実行すると、次のようになります。

    char number=(char)one;

整数に対してのみ機能します。他のデータ型を使用すると、文字列表現が必要なときに数値が得られます。これを行う最も簡単な方法は何ですか? PSこの方法でキャストしようとすると、ポインターのサイズにも問題があるため、回答を完全に説明してください。C構文のみお願いします ありがとう

4

4 に答える 4

3

データ型の文字列表現を探しているなら、必要なのはsprintf関数だと思います。たとえば、floatタイプの場合、次のようにします。

float example = 3.6;
char temp[64]; // Allocate a string of size 64.
sprintf(temp, "%f", example);

exampleこれにより、の文字列表現が一時的に保存されます。

于 2013-02-26T03:08:42.830 に答える
1

Acharは整数型です。つまり、整数(未満256)との間で変換できます。

他のデータ型では、文字列表現が必要なときに数値値が得られます。

技術的には、文字列はではありませんchar。これはchar配列であるため、最終的にはポインタに減衰します。

タイプごとに、独自のtoString()種類の関数を作成し、それに応じてフォーマットされた文字列を返す必要があります。

最も簡単な方法:使用sprintf()

于 2013-02-26T03:13:36.273 に答える
0

概念を正しく理解するために、この 1 行を 1 語ずつ見ていきましょう。

char number=(char)one;
  • 最初charは宣言です。これは、 type の変数を作成していることを意味しますcharchar1 バイト (8 ビット) のデータ型で、通常は 1 文字を保持するために使用されますが、基本的にはバイトです。そのため、0x00 (別名 0) から 0xFF (別名 255) までの値を保持できます。

  • numberタイプの変数の名前ですchar

  • =代入演算子です。の値を設定しますnumber

  • (char)は、「私の後にある変数の型が何であれ、それを として解釈するchar」ことを意味します。これを「へのキャスト」と呼びcharます。(「charに渡す」ではありません)。

  • あなたのコードからは、何が何であるかわかりませんonecharしかし、それが aまたは 0 から 255 までの整数以外の場合、代入は意味がありません。

要約するとnumber、これは 1 バイトの値を保持する単なる char であり、それに別のものを割り当てると、おそらく望ましくない結果が得られるということです。

于 2013-02-26T03:21:33.703 に答える
0

おそらくあなたはこのようなものを求めています:

char number = '0' + one;

これは1 = [0、9]で機能します

于 2013-02-26T03:31:01.540 に答える