第10回 mixC++ Code Golf 結果報告

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

第10回 mixC++ Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

#第10回[Swap case]#

[問題]
入力された英数文字列を、大文字と小文字を入れ替えて表示する

[入力|例1]
Loremipsum

[出力|例1]
lOREMIPSUM

[入力|例2]
mixC++ Code Golf

[出力|例2]
MIXc++ cODE gOLF

[入力|例3]
@AZ['az{

[出力|例3]
@az['AZ{

[期間]
12/11(土)22:00 ~ 12/18(土)21:59

[hr]
=結果=

投稿数 10件(3人)

1位 (54B)
みけCAT さん
main(a){for(;~a;putchar(a^isalpha(a)>>5))a=getchar();}

2位 (55B)
a5ua さん
main(c){while(~(c=getchar()))putchar(isalpha(c)/32^c);}

*1位1番乗り
みけCAT さん

[hr]
★解説

今回のポイントは次の2つです。

標準Cライブラリ関数は便利
アルファベットかどうかの判定を自前で組まず、標準Cライブラリの isalpha 関数を使うことでコードを短くできました。
ただし、isalpha の実装依存のコードとなっていることに注意してください。

アルファベットの小文字⇔大文字変換
1位のコードはどちらも、文字コード上で、対応する小文字と大文字のアルファベットの値の差が32であることを利用しています。

興味が出てきたら、コミュニティ「Code Golf を楽しもう」まで!
初心者歓迎、参戦&観戦いつでもお待ちしています!
http://dixq.net/forum/viewforum.php?f=52

[hr]
第11回は五反田さんが出題・投稿受付を担当されます。
コードの投稿は、今回はコミュ主ではなく五反田さんへ!
.
最後に編集したユーザー あーる@Reputeless on 2010年12月29日(水) 00:58 [ 編集 2 回目 ]

アバター
五反田
記事: 21
登録日時: 15年前

Re: 第10回 mixC++ Code Golf 結果報告

投稿記事 by 五反田 » 14年前

isalphaの存在が自分の中では無き物になっていました。
forループ内での処理順序をしっかり考えることも出来なかったし、次の次は頑張りたいと思います。

みけCATさんおめでとうございます。

それにしても参加者数が・・・。

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

Re: 第10回 mixC++ Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

> 五反田さん
isalpha なしで頑張ってくれましたね (╹◡╹;;;
シンプルな問題のほうが、打倒ランキング常連軍の勝機が出てくるみたい。

参加者数は自然な変動内だと思います。
来る者拒まず、来ない者気にせず。新参古参の挑戦者がコードを送ってくるのをゆるりと待ってます。

アバター
沖 滉均
記事: 237
登録日時: 14年前

Re: 第10回 mixC++ Code Golf 結果報告

投稿記事 by 沖 滉均 » 14年前

目が覚めたら終わってましたorz
isalphaなんていうものがあった…ってことは完全失念(;´Д`)

xxx
記事: 26
登録日時: 15年前

Re: 第10回 mixC++ Code Golf 結果報告

投稿記事 by xxx » 14年前

3人とはこれまた・・・
今回は五反田さんの出題・・・頑張らねば

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前
住所: 千葉

Re: 第10回 mixC++ Code Golf 結果報告

投稿記事 by あーる@Reputeless » 14年前

> 沖 滉均 さん
お仕事お疲れ様です。
ここに載っている標準Cライブラリの関数なら
http://bit.ly/CSTDLIB
include 無しで、じゃんじゃん使えるはずです!

> roxion1377 さん
いよいよメンバー出題が始まりましたね
来週の出題、よろしくお願いいたします(´ω`*