< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> | int main(void) { char buf[10]; buf[0]=55;//普通に代入 buf[1]=067;//8進数として代入 buf[2]=0x37;//16進数として代入 buf[3]='7';//文字として代入 buf[4]='0'+7;//文字 0 (コード48,0x30)に7を加算して文字 7 のコードを作成 buf[5]="0123456789"[7];//リテラル文字列が配列であることを利用して7番目の要素の文字コードを取得 buf[6]='\0';//ナル文字を付けておきます。 printf("%s\n",buf);//全部まとめて文字列として出力 //終了待ち getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> | int main(void) { char str[10]="53976";//適当な数字文字列。 // 01234 ←配列添字。1文字目が0番であることに注意。 int n=0; //sscanfを使って3桁目の '9' を取り出してみる sscanf(str,"%d",&n);//まず数値として解釈して・・・(終了時 n==53976) n/=100;//100で割って下2桁を消します。(終了時 n==539) n%=10;//10の剰余(あまり)を求めて上位桁を消します。(終了時 n==9) printf("sscanf()=%d\n",n); n=0;//次の正当性証明のため nの中身を消しておきます。 //上記の減算法で3桁目の '9' を取り出してみる n=str[2]-'0';//3文字目の文字コードから文字 0 の文字コードを減算。 printf("減算法=%d\n",n);//一行になりました。ただし数字じゃなかった場合は妙なことになります。 //終了待ち getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> < 26> < 27> < 28> < 29> < 30> | int main(void) { char dig2hex[17]="0123456789ABCDEF";//10進数の数値と16進数文字の対応配列。結果的には下の直接参照と同じことになる。 printf("%c,%c\n",dig2hex[12],"0123456789ABCDEF"[12]);//10進の12を16進数一文字で出力してみる。 char encrypt[11]="7192806435";//簡易暗号のキー・・・数字をぐちゃぐちゃにしちゃいます。 char decrypt[11]="5138796042";//復号用のキー・・・上のキーの逆行キーです。 char str[6]="80619";//暗号化してみる数字列。 char encstr[6];//暗号化した数字列。 char decstr[6];//復号した数字列。 encstr[0]=encrypt[str[0]-'0'];//こんな感じに使います。難しいですか? encstr[1]=encrypt[str[1]-'0'];//ちなみにループが出てくるとこのようなパターンは1行になります。 encstr[2]=encrypt[str[2]-'0']; encstr[3]=encrypt[str[3]-'0']; encstr[4]=encrypt[str[4]-'0']; encstr[5]='\0';//ナル文字忘れずに・・・ puts(encstr);//putsには配列変数に入れた文字列も渡せます。printf("%s\n",encstr);と同じ結果になります。 decstr[0]=decrypt[encstr[0]-'0'];//今度は復号です。 decstr[1]=decrypt[encstr[1]-'0']; decstr[2]=decrypt[encstr[2]-'0']; decstr[3]=decrypt[encstr[3]-'0']; decstr[4]=decrypt[encstr[4]-'0']; decstr[5]='\0';//ナル文字忘れずに・・・ puts(decstr); //終了待ち getchar(); return 0; } |