文字列の長さを求める(反復法と再帰法)

1302 ワード

まずstrlen関数を復習しましょう.
strlen(文字配列)
これは、文字列の長さをテストする関数です.関数の値は、文字列の実際の長さ('0'を除く)です.たとえば、次のようになります.
              char str[10]='"china";
              printf("%d",strlen(str));
出力の結果は5
文字列定数の長さを直接テストすることもできます.たとえば、次のようにします.
            strlen("china");
 
<span style="font-size:18px;">#include <stdio.h>
#include <string.h>
#include <assert.h>
int my_strlen(char *str)
{ 
    assert(str);// 
	int one=0;// , 
	while(*str++!='\0')// '\0'
	{
	   one++;
	 }
	return one;
}
int main()
{
	int ret=my_strlen("hello");// strlen 
	printf("%d
",ret); return 0; } </span>
<span style="font-size:18px;">// 
#include <stdio.h>
int strlen(char *p)
{
	if (*p == '\0')
		return 0;
	else
		return 1 + strlen(p + 1);
}
int main()
{
	char *p = "country";
	int ret = strlen(p);
	printf("%d
", ret); //getchar();// VS2013 , getchar // return 0; }</span>