strlen函式

Lange_Taylor發表於2019-03-31

遞迴和非遞迴分別實現strlen .
遞迴:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int strlen(char *str)
{
	if (*str == '\0')    //當傳入的字串中沒有字元
		return 0;		//字串長度為0
	else
		return 1 + strlen(str + 1);	/*運用遞迴,每遞迴一次
	長度加1,直到遍歷到的'\0'時結束遞迴*/
}
int main() {
	char ch[] = "qwertyuiop";
	int len = strlen(ch);
	printf("%d ", len);
	printf("\n");
	system("pause");
	return 0;
}

非遞迴:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int strlen1(char *str) {
	int count = 0;
	while (*str++ != '\0') {
		count++;
	}//這個迴圈體意思是從字串第一個字元起計數,只遇到字串結束標誌'\0’才停止計數
	return count;
}
int main() {
	char ch[] = "qwertyuiop";
	int len = strlen1(ch);
	printf("%d ", len);
	printf("\n");
	system("pause");
	return 0;
}

相關文章