1.strlen的基本用法
strlen所作的时一个计数器的工作,计算字符串长度。它从内存的某个位置(可以时字符串的开头,中间的某个位置,甚至是某个不确定的内存区域)开始扫描,直到遇到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。头文件:string.h
#include <stdio.h>
#include <string.h>
int main()
{
int k = 0;
char arr[] = "c language"; //空格也算一个字符。
k = strlen(arr);
printf("The lenth of the string is %d\n", k);
return 0;
}
2.用计数器的方法实现
#include <stdio.h>
int My_strlen(char* str)
{
int count = 0;
while (*str != '\0')//注意书写格式'\0'之间不要乱加空格
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "c language";//char arr[] = {'c',' ','l',.......};
int k = My_strlen(arr);
printf("The lenth of the string is %d\n", k);
return 0;
}
3.用指针减指针的方法实现
#include <stdio.h>
int My_strlen(char* str)
{
char* start = str;
while (*str != '\0')
{
str++;
}
return str - start;
}
int main()
{
char arr[] = "c language";
int k = My_strlen(arr);
printf("The lenth of the string is %d\n", k);
return 0;
}
4.用递归实现
My_strlen("c language");
1+My_strlen(" language");
1+1+My_strlen("language");
...
1+1+1+...+My_strlen("");
#include <stdio.h>
int My_strlen(char* str )
{
if (*str != '\0')
return 1 + My_strlen(str + 1);
else return 0;
}
int main()
{
char arr[] = "c language";
int k = My_strlen(arr);
printf("The lenth of the string is %d\n", k);
return 0;
}