再帰で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