char型のものを char[]型に代入したいです。

char c = 'a';
char h[1] = c;

として、

h[0] は \x97
h[1] は \x00

にしたいです。
型変換の方法を教えてください。

A 回答 (1件)

とりあえず、確認を。



C では、'a'の表す値は 0x61 = 97 であって、 \x97 ではないと思います。
(\xnnn を、十六進数の意味に取りましたが、あってますでしょうか?
この場合、C では通常 0xnnn のように書くと思います。)
ので、 これは 0x61 のことをおっしゃっていると仮定します。

> char h[1] = c;
っと、これではたぶんコンパイルが通りません。

char h[1] = {c};

のように、配列であることを明示して代入してください。
この式では、前半でh という名前の、*長さ1 の* char の配列変数を確保します。
後半で、その中を初期化しています。
添え字は 0 からはじまるので、この場合、h[0] に c の内容が代入されます。
1個しか場所を確保していないので、 h[1] の位置のデータは内容が不定です。
文字列として h を扱いたいのであれば、 C の文字列には終端として 0 が必要ですから、
char c = 'a';
char h[2] = { c, '\0'};

のような書き方が必要になります。
これで、お望みのデータになると思います。
    • good
    • 0
この回答へのお礼

\x97 は書き間違えと16進に直すのも忘れていました。

h[1] までを使うためには、h[2] で宣言しないと
いけなかったんですよね。よく間違えるんだけど
言われるまで気づきませんでした。

= {c}
というの書式は初めて使いました。
やりたかったことはできました。
ありがとございます。

char型のものを char *型に代入する場合も
= {c}
が使えたのはうれしかったです。

char c = 'a';
char *p = {c};

お礼日時:2001/12/09 21:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 基本情報技術者試験の言語ってどうやって選ぶ?

    SEを目指す場合、基本情報技術者試験を経て実務に就いた人も多いのではないでしょうか。教えて!gooにはSEを目指している質問者からこんな質問が寄せられました。 「基本情報技術者試験のC言語とJavaの違い?」 将...

  • 既婚者なのに恋をしてしまった時の対処法

    最近、世間を賑わしている「不倫」。だが、パートナー以外の異性に心を奪われてしまった人たちも、最初はやり場のない恋心とどう折り合いをつけるべきか悩んでいたのかもしれない。「教えて!goo」に「既婚者だけど...

  • 孤独死を防ぐために、一人一人が今できること

    先日、「教えて!goo」で「孤独死って怖いですか?」という記事を配信した。ここではさまざまな意見が交わされたが、出来ることなら最期を迎えるまで、誰かとともに過ごしたいと願うのはごく自然な感情なのではない...

  • せきらら女子会:第83話「ご近所トラブル?」

    恋愛、結婚、お金、夜の営み...いろんなことに対して、赤裸々にトークする女の子達のお話。考え方の違う4人が、今日も居酒屋に集まります。

  • ゲーム業界ダンナ観察日記:第70話「空想企画は楽しい」

    ダンナ様のねむねむ。奥様のとぽすけ。ごく普通のふたりは、ごく普通の結婚をし、だらだらと夫婦生活を送っていました。でもただひとつ違っていたのは、ダンナ様はゲーム会社勤務だったのです。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ