一日一コード 6.AtoI()

こんなもん簡単簡単、さくっと作ろう。
ちなみに atoi()とは Ascii to intergerの略。
いちいちマイナスにも対応しないといけないのがなんかすっきりしない。
あまりスマートではないなあ。

C♯


public static int my_atoi(string str)
{
int ret =0; int minus=1; byte xchr; int i=0;
if( str[i] == '-'){ minus = -1; i++;} //先頭の - 記号。

for( ; i < 11 && i < str.Length; i++)
{
xchr = (byte)( str[i] ^ 0x30);
if( xchr > (byte)0x09 ) break;
ret = 10 * ret + xchr;
}
return ret * minus;
}

今日の戦利品。