递归和非递归分别实现strlen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//递归
int strlen1(char *string) {
if (*string != '\0') {
string++;
return 1 + strlen1(string);
}
return 0;
}
//非递归
int strlen2(char *string) {
int num = 0;
while(1) {
if (*string != '\0') {
++string;
num = num + 1;
}
else {
break;
}
}
return num;
}
int main() {
char *string = "hello world!";
int num;
num = strlen2(string);
printf("%d\n", num);
num = strlen1(string);
printf("%d\n", num);
num = strlen(string);
printf("%d\n", num);
system("pause");
return 0;
}