再帰でStrlenを書いてみた

土曜日の友人との勉強会に友人からC言語にて文字列の終端をとってくるのは、どうすれば良いか聞かれたので
Strlenを使えば良いといったら、自分で関数を作るのはどうすればいいのか聞かれたので、その場で10分ぐらいで書いたものを今日はUPします。

#include

int strlen2(char* str);

void main()
{
    char *str = "abcdefg\0";
    int num = 0;

    num = strlen2(str);

    printf( "文字列:%s\n", str );
    printf( "文字列の長さ:%d\n", num );
}

int strlen2( char* str)
{
    int num;

    if( *str != '\0' ){
        num = strlen2(++str);
        printf( "%d\n", num );
    }else{
        return 0;
    }
    return ++num;

}

下記のように再帰して、出力されます。
0
 1
  2
   3
    4
     5
      6
       7
文字列:abcdefg
文字列の長さ:7


にほんブログ村 IT技術ブログへ
にほんブログ村
ブログランキング・にほんブログ村へ
にほんブログ村