[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 01/02 08:08 / Filesize : 214 KB / Number-of Response : 711
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 131代目



316 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 10:52:13 ]
>307
hashとかmapが使えるとすげー楽なのだけれど、Cには無いので代わりの方法をやってみた。
要はD→A、C→Z・・・の写像を定義してあげればよい。mapだとそのままこの写像が定義できる。
Cではできないので、インデックスに変換してあげている感じ。
#include <stdio.h>
#include <string.h>
#define ELENUM(array) (sizeof(array) / sizeof(array[0]))
/* A, B, C...,Zを0, 1, 2, .. 25に変換。 変換できない場合-1 */
int alphIndexing(char ch)
{
char alph[] = "ABCDEFCHIJKLMNOPQRSTUVWXYZ";
int idx;
for (idx = 0; idx < ELENUM(alph); idx++) {
if (alph[idx] == ch) {
return idx;
}
}
return -1;
}
int main(int argc, char **argv)
{
const char aCaesarTbl[] = "*XYZABCDEFCHIJKLMNOPQRSTUVW";
const char *pConvert = (aCaesarTbl + 1);
int idx;
printf("input : %s\n", argv[1]);
printf("encoded: ");
for (idx = 0; idx < strlen(argv[1]); idx++) {
putchar(pConvert[alphIndexing(argv[1][idx])]);
}
putchar('\n');
return 0;
}






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef