• ベストアンサー

型変換の仕方について。。。

VisualC++でプログラミングしています。 int型の数値データをCString型もしくは、char型の文字列に変換する方法をご存知の方、ぜひ、アドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • volv
  • ベストアンサー率75% (3/4)
回答No.2

よく使う方法はいくつかあると思いますが、とりあえず 3通りご紹介します。 CString型の変数をStr、 int型の変数をnValue、とし、10進の文字列に 変換するとします。 1・CString型にする場合。 (a)CStringのFormatメンバを使う。 Str.Format("%d" , nValue); 2・char型の文字列にする場合。 int nLen; char* pchBuf; nLen = log10(nValue) + 1; pchBuf = (char*)malloc(nLen + 1); ここまでが共通。 (a)itoaを使う。(mnabeさんのご回答と同じ) itoa(nValue , pchBuf , 10); (b)sprintfを使う。 sprintf(pchBuf , "%d" , nValue); ちなみに私の場合char型の配列に入れる場合sprintf を使うことが多い気がします。

99nari
質問者

お礼

本当にありがとうございました。 独学でやっていたため、行き詰まるとなかなかしんどかったのですが、とても参考になりました。 それでは、失礼します。

その他の回答 (1)

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

itoa

99nari
質問者

お礼

ありがとうございました。 はじめ、回答の意図が理解できなかったのですが、あとで、なるほどと理解できました。

関連するQ&A

  • CStringからchar*への型変換について教えてください。

    以前の質問に int型 → CString型/char型 がありましたが、 CString型をchar*型に変換する方法を 教えていただければありがたいです。 MSDNで「LPCTSTRキャスト」が説明されていましたが、 例が載ってないのでよくわかりませんでした。 よろしくお願いします。

  • 2進数から10進数変換

    int henkan(char [ ]) という関数に、”10111”と 2進数で表記されている文字列を数値に変換したいんですが、 どうやったらよいのか教えてください。

  • VC++におけるCStringの変換

     VisualC++6.0において、CStringというオブジェクトがありますよね。  たとえば、Edit->GetWindowText(str);  などで、strにEditのさす文字列を入れたりして、そのあとにstrを使って算術演算をするときにどうしてもstrをintかlong型に直したいのです。  キャストの仕方がよくわからないので、知っている方教えてください。よろしくお願いします。

  • char型・int型を相互変換させるプログラミング

    今、C++で2つのPC間で数値データの送受信を出来るようにしようと思い、実際にデータを飛ばせるところまで来たのですが、送れるデータの型はchar型のみであるとのこと。 ですので、intの値を一旦charにして送り、送った先でまたintにしたらいいかなと考えてプログラミングしました。 簡単にできると思ったのですが、上手くいきません・・・。プログラムのどの部分が間違っているのでしょうか? 一人では、これ以上悩んでも好転しないので、皆さんのご指導をお願いします 以下プログラム抜粋、このプログラムでは型変換がおこなわれているかの確認ができればいいので、それのみでプログラミングしています =================================================== #include <stdio.h> #include <stdlib.h> #include <string> #include <iostream> int main() { int a=123; char *b=new char; int c=1; //変換部分 *b=(char)a; std::cout<<"int→char>>>"<< c << "\n"; //逆変換部分 d=atoi(c); std::cout<<"char→int>>>"<< d << "\n"; } ======================================================

  • C言語で整数を文字列へ型変換

    C言語で整数を文字列へ型変換 int result[11]; const char *tmp; resultの中の11個の数字を 1,2,3,4,5,6,7,8,9,10,11 のような文字列にして、tmpへ代入したんですが、やり方が分かりません。 Cの初心者ですので、教えていただきたいです。

  • C言語の型変換について

    short int 型をunsigned char型に変換する方法をおしえてください

  • 変数の型を変換する方法を教えてください。

    XcodeとInterface Builderを使って、iPhone用に電卓のアプリケーションを作っています。 ボタンを押し、変数に文字型として値を保存。 そして文字列をatoiを用いて変数の値を数値型に変換して計算を行います。 最後に文字列としてラベルに計算結果を表示したいのですが、 計算結果を数値型から文字列に変換する方法が分かりません。 Objective-cに関する質問ですが、基本はCと同じなので。。。 何かいい方法がありましたら、よろしくお願いします><

  • c言語 型変換について

    c言語 型変換について 下記のように文字コードは、unsigned int型('B')をunsigned char 型(str[1] ) 格下げする型変換する規則を教えてください。 *質問ソースプログラム: int main(void) { char str[4]; /* 文字列を格納する配列 */ str[0] = 'A'; /* 代入 */ str[1] = 'B'; /* 代入 */ ・・・・・・ printf("size B %u\n",(unsigned)sizeof('B')); printf("size str[1] %u\n",(unsigned)sizeof(str[1])); * 実行結果 size B 4 size str[1] 1

  • 文字列をint型に変換したいのですが

    文字列をint型に変換して、計算に使用したいのですが うまくいきません。 char moji[0] = '1' moji[1] = '2' moji[2] = '3' この文字列をひとつずつint型の変数に代入したいのですが atoi関数を使用した場合、文字列全ての値が変換されてしまいます。 どうしたらいいのでしょうか? お答えいただけるとありがたいです。

  • 型変換方法について

    困っています。。 下記コードは文字コードのチェックをしているのですが、チェックする文字コードを直接指定するのではなく、 String code = "0x2460" のように持たせておきたいのですが、この文字列を使ってチェックするにはどうしたらよいでしょうか? char型に変換しないといけないと思うのですが変換方法が分かりません。 API等いろいろ調べてみたのですが分かりませんでした。 どうか宜しくお願いします。 コード---------------------------------------- public class CodeCheck {  public static void main(String[] args) {   String str = "a"; // チェック対象文字   char ch = str.charAt(0);   if(ch == 0x2460) {    // エラー処理   } else {    // 正常処理   }  } } ---------------------------------------------

    • ベストアンサー
    • Java