一、概念
/*
四个知识点
1.任何数值都有真假性 (1真 0假)
2.++在前 ++在后的特性 (i++ 先获取之前的值,再自增1 --- ++i 先自增1,在操作)
3.指针+1是加多少 加上指针类型的所占用的字节(char *p p+1 = p+1 --- int *p p+1 = p + 4)
4.循环只会执行离他最近的一条语句
*/
二、代码
#include <stdio.h>
#include <string.h>
int myStrlen(char *str);
int myStrlen2(char *str);
int myStrlen3(char *str);
int main()
{
// 要求自己实现strlen函数
char *name = "lyh";
// size_t size = strlen(name);
// int size = myStrlen(name);
// int size = myStrlen2(name);
int size = myStrlen3(name);
printf("size = %i\n",size);
return 0;
}
int myStrlen3(char *str)
{
int count = 0;
// \0 ASCII码是0 // 0代表假 1真
while (*str++) count++;
return count;
}
int myStrlen2(char *str)
{
int count = 0;
// *str == str[0]
while (*str++ != '\0') {
count++;
// str = str + 1; // 指针+1 相当于指针类型的+1 str = str[1]
// str++; // ++可以变量名前, 也可以在变量名后
}
return count;
}
int myStrlen(char *str)
{
int count = 0;
while (str[count] !='\0') {
count++;
}
return count;
}