字符串长度是指字符串所含的字符个数,但不包括最后的'\0'。
C语言的字符串是由字符数组形式保存的,并约定'\0'(ascii码值为0)作为字符串结束符。其长度为从字符串开始,到'\0'结束,所有字符的个数,不包括'\0'本身。
#include <stdio.h>
int my_strlen1(char* ch) {//法一:递归求字符串长度
if (*ch != 0) {
return 1+my_strlen1(ch + 1);
}
else{
return 0;
}
}
int my_strlen2(char* str) {//法二:循环求字符串长度
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int my_strlen3(char* c) {//法三:指针相减求字符串长度
char* star = c;
while (*c != '\0') {
c++;
}
return (c - star);
}
int main() {
//strlen(); - 求字符串长度
//递归
int len1 = my_strlen1("sfsfs");
int len2 = my_strlen2("jsfi");
int len3 = my_strlen3("jienn");
printf("%d\n", len1);
printf("%d\n", len2);
printf("%d\n", len3);
return 0;
}
