No.2ベストアンサー
- 回答日時:
#1です。
char *b="ace";
char *c;
printf("%s=", b);
for( c=b; *c!='\0'; c++ )
printf("%o", *c);
printf("\n");
以上で「ace=141143145」と表示されると思います。
これを関数にまとめておけば、使い回しが出来ます。
たとえば...
void octdisp(const char *a)
{
char *b;
printf("%s=", a);
for( b=a; *b!='\0'; b++ )
printf("%o", *b);
printf("\n");
}
int main(void)
{
char *a="a";
char *b="ace";
octdisp(a);
octdisp(b);
return 0;
}
No.3
- 回答日時:
ANo.2のように1文字ずつコードを表示すればOKです。
ただし、"%o" は "%03o" にしないと数字が小さいとき3桁になりません。
参考まで。
#include <stdio.h>
void octdisp(char *a, char *name) {
char *p=a;
printf("ポインタ%sの中身%sはASCIIコード8進数で", name,a);
while(*p!='\0') printf("%03o", *p++);
printf("です。\n");
}
int main(void) {
char *a="a";
char *b="abc";
octdisp(a, "a");
octdisp(b, "b");
return 0;
}
No.1
- 回答日時:
文字をどのように見るかで変わってくるだけです。
(と言いますが、パソコンの奥深くでは文字だろうと何だろうと常に数字です。)ちなみに、"a"のASCIIコードは0x61ですが...
printf("%c=%o", *a, *a);
これだと、
a=141
と表示されるはずです。
この回答への補足
即レスありがとうございます。
%oや%dのみだとポインタの最初の文字だけ表示されて
char *b="ace";の様な文字列だと"%o",*dだけでは141143145と全ての文字が表示されないのですが何か解決策は無いでしょうか?
初心者ですいません><
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語 strstrの実装
-
Micom Car Rally に向けて製作...
-
DWORDとcharの変換
-
C言語のchar型配列を計算させる...
-
CStringからchar*への型変換に...
-
小数点入りの文字列をfloat型に...
-
fstream型オブジェクトを関数の...
-
2次元配列の文字"列"の初期化方法
-
文字列のswap
-
VBAのプログラムで、DIAG = 1# ...
-
System.IO.Directory.GetFiles...
-
配列の要素数に変数を入れたい...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
ダイアログから、ドキュメント...
-
ExcelVBAでのkernel32(64bit)
-
c言語のポインタへの文字列入力...
-
セグメントエラー
-
if文の判定条件に配列
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語にて構造体のメンバがNULL...
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語のプログラムについてです
-
小数点入りの文字列をfloat型に...
-
new charとnew char[N]の違いは?
-
char型にint型の数値を代入する。
-
エクセルのMID関数は、C言語では?
-
fstream型オブジェクトを関数の...
-
動的メモリの初期化方法について。
-
const char* s1とただのchar s1...
-
char 文字列型 の表現範囲が-12...
-
文字列の途中から途中までを抽出
-
strcat関数を自作したいです
-
2次元配列の文字"列"の初期化方法
-
DWORDとcharの変換
-
C言語で文字列をかえす正しい書...
-
szとlpszの違い
-
fgetc( )の戻り値はなぜ整数??
おすすめ情報