C语言计算字符串长度的方法
思路分析
字符串的结束标志是’\0’,因此计算字符串的长度的核心思想就是通过字符指针顺序检索每一个字符,直到检测到’\0’为止,以下是实现该算法的几种方式。
代码实现
1.用while循环实现
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
int myStrlen(char* str)
{
int count = 0;
while(*str != '\0')
{
count++;//记录字符串长度
str++;
}
return count;
}
int main()
{
char arr[] = "bit";
int len= myStrlen(arr);
printf("%d\n", len);
system("pause");
return 0;
}
2.用递归实现
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
int myStrlen( char *str)
{
if ((str == NULL) || (*str == '\0'))
{
return 0;
}
else {
return myStrlen(str + 1) + 1;
}
}
int main()
{
char arr[] = "bit";
int len= myStrlen(arr);
printf("%d\n", len);
system("pause");
return 0;
}
3.另一种递归实现
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
#include <assert.h>
int myStrlen(const char *str)
{
assert(str != NULL);
return *str ? (myStrlen(++str) + 1) : 0;
}
int main()
{
char arr[] = "bit";
int len= myStrlen(arr);
printf("%d\n", len);
system("pause");
return 0;
}