天天看點

C語言求字元串長度

求字元串的長度

有兩種方法

第一種:

非遞歸:思想很簡單就是調用<string.h>庫函數中的strlen()函數即可

代碼如下所示:

#include<stdio.h>
#include<string.h>
int main()
{
	char *str = "hello";
	int len = strlen(str);
	printf("%d\n", len);
	return 0;
}
           

第二種:

遞歸:思想就是大問題化成小問題,求字元串長度莫非就是字元串中的字母個數相加,例如hello就是5個字母即它的字元串長度就是5。遞歸滿足的兩個條件是:1.自己調用自己;2.終止條件

而怎麼算把字元串讀完,當遇到’\0’時就停止了,是以這個即是遞歸函數的終止條件;而怎麼調用自己呢,我們知道字元串長度可以是h+(ello)的長度,而ello可以是e+(llo)的長度,以此類推,即可以寫出遞歸函數

代碼如下所示:

#include<stdio.h>
    #include<string.h>
    Mystrlen(char *p)//p是指針變量存放的是字元串首位字元的位址
    {
    	if (*p == '\0')//*p表示間接通路,若字元串位址裡的内容是'\0'即表示字元串長度為0
    	{
    		return 0;
    	}
    	else//若字元串位址裡的内容不是'\0',則最少傳回1,即字元串中有一個字元
    	{
    		return 1 + Mystrlen(p + 1);
    	}
    }
    int main()
    {
    	char *str = "hello";
    	int len = Mystrlen(str);
    	printf("%d\n", len);
    	return 0;
           

運作結果如下所示:

C語言求字元串長度

繼續閱讀