C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.54576 の関連記事表示

<< 0 >>
■54576  文字列の様々な変換について
□投稿者/ 新参者 -(2010/10/26(Tue) 20:55:50)

    分類:[C/C++] 

    大変初歩的なご質問で恐縮ですが、文字列の変換についてご教授ください。
    (使用言語:C++)

    下記に示すそれぞれのパターンにて、
    文字列をbufに1バイトずつ格納するにはどのように行えばよろしいでしょうか?
    的外れなご質問もあるかと思いますが、よろしくお願いします。

    @文字列"ABC"をアスキーコード値で1バイトずつ格納する。
    buf[0]=0x41
    buf[1]=0x42
    buf[2]=0x43

    A文字列"300"を16進数の値で1バイトずつ格納する。
    buf[0]=0x01
    buf[1]=0x2C

    B文字列"8"を以下のように格納する。
    buf[0]=0x08

    C文字列"0x20"を以下のように格納する。
    buf[0]=0x20
親記事 /過去ログ91より / 関連記事表示
削除チェック/

■54577  Re[1]: 文字列の様々な変換について
□投稿者/ ちゃっぴ -(2010/10/27(Wed) 00:28:30)
>
    buf の型は何?
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54580  Re[2]: 文字列の様々な変換について
□投稿者/ 新参者 -(2010/10/27(Wed) 06:18:36)
    No54577 (ちゃっぴ さん) に返信
    > buf の型は何?

    すみません、char型になります。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54582  Re[3]: 文字列の様々な変換について
□投稿者/ 774RR -(2010/10/27(Wed) 08:38:15)
    うーん自分で答えを書かれているので正直何を聞いているのか不明・・・
    (1) (2) それって答えなんぢゃないの?
    ものすごくエスパーするに、
    (3) 要するに atoi/strtol/strtoul と言って欲しいわけかな?
    (4) 同じく strtol/strtoul ?
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54603  Re[4]: 文字列の様々な変換について
□投稿者/ 新参者 -(2010/10/27(Wed) 12:52:09)
    No54582 (774RR さん) に返信
    > うーん自分で答えを書かれているので正直何を聞いているのか不明・・・
    > (1) (2) それって答えなんぢゃないの?
    > ものすごくエスパーするに、
    > (3) 要するに atoi/strtol/strtoul と言って欲しいわけかな?
    > (4) 同じく strtol/strtoul ?
    >

    プログラミングに関して、あまり行った経験がなく、
    自分でもうまく整理できていない状況で質問してしまい、申し訳ありません。。。

    はい、お聞きしたい事項は、
    最終結果として@〜Cのように1バイトのデータを設定するためには、
    文字列から文字をどのように取り出して、どう変換をかけて設定すればよいかを
    お聞きしたいと思っております。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54604  Re[5]: 文字列の様々な変換について
□投稿者/ ミラ -(2010/10/27(Wed) 13:03:09)
    string aa = "abcdef";
    aa[0]で最初の"a"が取り出せますってことを聞いてますか?
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54622  Re[5]: 文字列の様々な変換について
□投稿者/ PATIO -(2010/10/27(Wed) 18:31:20)
    2010/10/27(Wed) 18:34:12 編集(投稿者)

    No54603 (新参者 さん) に返信
    > プログラミングに関して、あまり行った経験がなく、
    > 自分でもうまく整理できていない状況で質問してしまい、申し訳ありません。。。
    >
    > はい、お聞きしたい事項は、
    > 最終結果として@〜Cのように1バイトのデータを設定するためには、
    > 文字列から文字をどのように取り出して、どう変換をかけて設定すればよいかを
    > お聞きしたいと思っております。

    ただ単純に"ABC"と書かれた物を変数を通さずに処理は出来ないと思いますけれど。

    例えばですが、
    char buf[] = "ABC";とか、char *p = "ABC";
    とかすれば、一番目の文字をbuf[0]とか、
    二番目の文字を*(p+1);とかで取り出すのはできると
    思いますけれど、何もなしにいきなり0x41が出てきたりしないと思いますよ。
    基本的にデータ操作をする為には何らかの変数に格納する必要があると思います。
    というか、関数に対してデータを引き渡す時は既に変数の状態で引き渡されているはずです。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54635  Re[6]: 文字列の様々な変換について
□投稿者/ .SHO -(2010/10/28(Thu) 00:15:08)
    No54622 (PATIO さん) に返信

    > ただ単純に"ABC"と書かれた物を変数を通さずに処理は出来ないと思いますけれど。

    "ABC"[0]で0x41が取れなくもないけどね。。。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54639  Re[7]: 文字列の様々な変換について
□投稿者/ PATIO -(2010/10/28(Thu) 10:02:49)
    2010/10/28(Thu) 10:04:11 編集(投稿者)

    No54635 (.SHO さん) に返信
    > ■No54622 (PATIO さん) に返信
    >
    >>ただ単純に"ABC"と書かれた物を変数を通さずに処理は出来ないと思いますけれど。
    >
    > "ABC"[0]で0x41が取れなくもないけどね。。。

    おおっ、それでも大丈夫だったんだ。
    できると言うのは納得できますけれど、あんまり意味がなさそうですね。
    "ABC"[0]って書くくらいなら、直接'A'と書いた方が早いし。
    記述ができるって事と処理的に意味があるかは別ですしねぇ。

    質問している方が問題の意図を理解しているかが問題かも。
    どんな答えを期待しているのか?
    (これがもし課題ならと言う話になりますが)
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54619  Re[1]: 文字列の様々な変換について
□投稿者/ PATIO -(2010/10/27(Wed) 18:21:49)
    2010/10/27(Wed) 18:24:02 編集(投稿者)

    No54576 (新参者 さん) に返信

    char buf[4];だとかとします。

    > @文字列"ABC"をアスキーコード値で1バイトずつ格納する。
    > buf[0]=0x41
    > buf[1]=0x42
    > buf[2]=0x43

    それで良いと思いますけれど、strcpyとかで"ABC"を入れる方法をとらないのはなぜ?



    > A文字列"300"を16進数の値で1バイトずつ格納する。
    > buf[0]=0x01
    > buf[1]=0x2C

    文字列として"300"が渡されて、これをバイナリ値に変換した後、
    1バイトずつ分解して設定するって事ですかね?
    この設定だとビッグエンディアンになってますが、それで大丈夫?


    > B文字列"8"を以下のように格納する。
    > buf[0]=0x08

    これも文字列"8"をもらってバイナリ値にし、
    charの変数に設定したいと言うことですかね。
    数字文字列から数値に変えたいなら
    既に774RRさんが関数の例を出してくれてますけれど。


    > C文字列"0x20"を以下のように格納する。
    > buf[0]=0x20

    文字列"0x20"を受け取ってバイナリ値にし、
    charの変数に設定したいということですかね。
    これも774RRさんが関数の例を出してくれてますよ。

    せっかく関数を例に出してくれているのですから
    関数名で調べましょうよ。
    何をしてくれる関数かわかるはずですから。

    あと、基本の部分がふらついているのであれば、
    入門書を何度も読みかえてして見てください。
    何か理解しきれないまま先に進んでしまっていないでしょうか。
    自分が何処が分からないのかをはっきりさせる事は理解の第一歩です。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54627  Re[2]: 文字列の様々な変換について
□投稿者/ 774RR -(2010/10/27(Wed) 20:06:15)
    とりあえず宿題ならもうそろそろ期限切れだろうし・・・
    (1) strcpy(buf, "ABC"); // 設問とは若干挙動が異なるので0点かも知れない
    (2) (3) (4) はすべて [ 文字列→整数値 ] 変換なので strtol が共通に使えて
    (2) long x=strtol("300", 0, 0);
    buf[0]=x>>8;
    buf[1]=x&0xFF;
    (3) buf[0]=strtol("8", 0, 0);
    (4) buf[0]=strtol("0x20", 0, 0);
    // いずれもキャスト略

    課題であるなら、あまり適切とは思えない。俺はこの課題出した人のセンスを疑うな。
    # 基本実行文字集合が ASCII でない環境なら (1) は確実に0点だし。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54645  Re[3]: 文字列の様々な変換について
□投稿者/ 新参者 -(2010/10/28(Thu) 12:18:09)

    色々と助言いただき、ありがとうございます。
    上記コメントをもとに試したところ、解決しました。

    もっと参考書等調べて、勉強します。
    本当にありがとうございました。
記事No.54576 のレス / END /過去ログ91より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -