- ベストアンサー
文字の書式変換に関して
初心者です。 文字の書式変換に関してよくわからないので質問いたします。 int pandegree=15; PANdegree[4]={0x00,0x00,0x00,0x00}//初期化 sprintf(PANdegree,"%04x",pandegree);//pandegreeを4桁16進数に変換して文字列PANdegreeに格納 この時点でPANdegreeに16進数4桁の値が以下のように入っています。 PANdegree[0]=0; PANdegree[1]=0; PANdegree[2]=0; PANdegree[3]=0; これをこのまま16進数として1文字ずつ別の文字列char pantiltに代入したいのですが、 char pantilt[10]={0x81,0x01,0x06,0x02,0X10,0X10,0X00,0X00,0X00,0X00,0XFF}; pantilt[6]=PANdegree[0]; pantilt[7]=PANdegree[1]; pantilt[8]=PANdegree[2]; pantilt[9]=PANdegree[3]; この時点で、PANdegree[0],PANdegree[1],PANdegree[2],PANdegree[3]に入っている文字は、%C(1文字)として認識されているのでしょうか? これを%Xとして認識させることはできませんでしょうか? まったくの初心者なので、勘違いだらけの質問かもしれませんがどうぞよろしくお願いいたします。 開発環境は Windows XP Visual Studio2005 C++ です
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 文字列変換プログラムのポインタについて
いかの関数は、文字列を16進文字列に変換する関数です。過去の質問を参考に自分で作りました。 動作することはするんですが、よく見るとpoとpiは領域確保していません。これってプログラム上まずいでしょうか。 char *conv( char *buff, char *str ) { char *po; char *pi; for(po=buff, pi=str; *pi; pi++) { if(0 <= *pi && *pi <= 15) { sprintf(po, "%x", 0); po++; sprintf(po, "%x", *pi); po++; }else { sprintf(po, "%x", (0x0f & (*pi >> 4))); po++; sprintf(po, "%x", (0x0f & (*pi % 16))); po++; } } *po='\0'; return(buff); }
- ベストアンサー
- C・C++・C#
- C言語で整数を文字列へ型変換
C言語で整数を文字列へ型変換 int result[11]; const char *tmp; resultの中の11個の数字を 1,2,3,4,5,6,7,8,9,10,11 のような文字列にして、tmpへ代入したんですが、やり方が分かりません。 Cの初心者ですので、教えていただきたいです。
- ベストアンサー
- C・C++・C#
- 数字を文字型に変換する
今日はCの初心者です。 数字を文字型に変換するのはsprintf以外に無いのでしょうか。 sprintfは変換後の数字を配列に入れるようになっていますが、使いにくいです、もっと簡単にキャストできないのでしょうか。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- C言語の文字列について
C言語で文字列のヌルについて、理解があいまいな点があり、教えて欲しいのですが、以下のようにsprintfで書式し代入した際に最後は0(ヌル文字)をセットしてくれるのでしょうか?4バイト目の文字が何か知りたいです。 char temp[100];時では0で初期化されていることは保障されていませんが、大抵は0で埋まっていますが、sprintfの仕様が知りたいです。 char temp[100]; sprintf(temp, "test");とした時に 01234バイト目 test?????????????.... 話は変わりますが、以下のようにするとエラーになりましたが、 特定の位置の値をセットする方法はどのようなものがあるのでしょうか? temp[10] = (temp[10] == '0') ? (char)'1' : (char)'0';
- ベストアンサー
- C・C++・C#
- VC String型のエンディアン変換
お世話になります String型の文字列のそれぞれの文字(一文字ずつ)の エンディアンを変更したいのですが、簡単な方法はないでしょうか? 今考えている方法は Stringから一文字ずつcharに入れ込んで このcharをシフトとマスクで入れ替える方法なのですが ((val<<8) & 0xff00) | ((val>>8) & 0x00ff) エンディアン変換の前後でString⇒charとchar⇒Stringを行うので、 少し煩雑になるのが気になっております。 型変換無しでエンディアン変換できないでしょうか
- 締切済み
- C・C++・C#
- sprintf関数での文字列変換について
マイコンにて、 C言語で浮動小数点の数値を表示するプログラムを作成しているのですが、 PRINT_OUT("123.456"); のように、文字列を直接指定した場合は正しく表示されるのですが、 sprintf()関数を用いて、浮動小数点を文字列に変換した場合、 buf char[10]; sprintf(buf,"%lf",123.456); PRINT_OUT(buf); とした場合はプログラムが暴走?(恐らく配列破壊を起こしていると 思われますが、)してしまい、上手く動作しません。 (但し、整数の場合は正常に動作します。) そこで、質問させていただきたいのですが、 "123.456"のように直接文字列を指定した場合と、浮動小数点123.456 をsprintf()関数を用いて文字列に変換した"123.456"の書式に何か 違いはあるのでしょうか?よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- 文字列をint型に変換したいのですが
文字列をint型に変換して、計算に使用したいのですが うまくいきません。 char moji[0] = '1' moji[1] = '2' moji[2] = '3' この文字列をひとつずつint型の変数に代入したいのですが atoi関数を使用した場合、文字列全ての値が変換されてしまいます。 どうしたらいいのでしょうか? お答えいただけるとありがたいです。
- ベストアンサー
- C・C++・C#
- 文字列と整数型について
はじめまして。 どうしても困っているのでヒントでも良いのでおねがいします。 関数内(func1)で確保した文字列変数のポインタを 別の関数(func2)にポインタ渡しします。 func2内で整数型で計算した結果を引数で示された文字列変数に 代入するというようなことをしたいと思ってます。 ここで、intは4byteとします。 メモリ長だけで見ると、bit[4] = tmp です。 void func1(){ char bit[4]; func2(bit); return; } void func2(char* p){ int tmp = 0x10101100; p = tmp; <---- ??? return; } そこでどのようにすれば、 代入することができるのか分かりません。 以下のような結果になるように代入したいと思っています。 bit[0] = 0x10; bit[1] = 0x10; bit[2] = 0x11; bit[3] = 0x00; 小さな文字列型に整数型をどのように渡せばよいのかが 一番疑問に思っているところです。 整数型に文字列型を代入する場合には 文字列のバイト指定とシフト演算で実現できています。 ヒントでもよいのでお願いします。
- ベストアンサー
- C・C++・C#
- ORACLEの文字コード変換について
「~」を文字コード変換する時に javaの中で、「0x301c」→「0xff5e」という変換をしておりますが、 「・」を文字コード変換を同様にしたいのですが、 文字コードがわかりませんので、教えてください。 また、他にも怪しいと思われる文字コードを教えてください。
- ベストアンサー
- Oracle
お礼
ご返答ありがとうございます。 ご丁寧に説明してくださったおかげで 理解できました。 まだまだよくわからないことが多いですががんばりたいと思います。 ありがとうございました。