スペース、タブ、改行など、文字のASCII文字の値を返す関数が必要です...
同様に、16進数、10進数、2進数を変換する関数は何ですか?
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
Char is整数。変換関数は必要ありません。
たぶんあなたは、整数を文字列として表示する関数を探しています-16進、2進または10進表現を使用していますか?
ASCII値を取得するための関数は必要ありません-(暗黙の)キャストによって整数に変換するだけです:
int x = 'A'; // x = 65
int y = '\t'; // x = 9
数値を16進数または10進数に変換するには、printf
ファミリーの任意のメンバーを使用できます。
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
バイナリに変換する組み込み関数はありません。自分でロールバックする必要があります。
コード内の文字のASCII値を取得する場合は、文字を引用符で囲みます
char c = 'a';
内部表現と出力を混同している可能性があります。文字の値を確認するには:
char c = 'A';
cout << c << " has code " << int(c) << endl;
同様に16進値-すべての数値は16進数であるため、出力の問題です。
int n = 42;
cout << n << " in hex is " << hex << n << endl;
出力ステートメントの「hex」は、C++マニピュレーターです。 16進数と10進数(dec)用のマニピュレーターがありますが、残念ながらバイナリ用ではありません。
16進数と2進数については、これらは単なる整数の表現です。おそらく望んでいるのは、printf( "%d"、n)やprintf( "%x"、n)のようなものです。最初は10進数を出力し、2番目は同じ数値の16進数バージョンを出力します。あなたがやろうとしていることを明確にしてください-