- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
302 :デフォルトの名無しさん[]:2015/09/22(火) 22:33:38.00 ID:hQ0EouVl - C++っぽく
void transform(char *, char *, char *, char(*)(char)); #define begin(array) &array[0] #define end(array) *(&array + 1) char lambda(char); int main(void) { static char s[] = "IHWOECZBRYLDNUGXKSFQVPTAMJ"; char d[27]; transform(begin(s), end(s), begin(d), lambda); puts(d); return 0; } void transform(char *first, char *last, char *dest, char(*pred)(char)) { for(; first != last; ++first, ++dest) { *dest = pred(*first); } } char lambda(char val) { return isupper(val) ? "4BCD3F6H1JKLMN0PQR5TUVWXY2"[val - 'A'] : val; }
|