自定义计算字符串长度函数
strlen()函数用于计算字符串长度,根据该函数的功能与声明,下面自定义实现与其功能相同的函数calStr(),具体如例1所示。
例1 calStr.c
1 #include <stdio.h>
2 unsigned int calStr(char* s)
3 {
4 int len=0
5 if (s == NULL)//容错处理
6 {
7 printf("calStr():错误!空字符串\n");
8 return -1;
9 }
10 else
11 {
12 while (*(s++) != '\0')//长度计算
13 len += 1;
14 }
15 return len;
16 }
17
18 int main()
19 {
20 char* str = "Itcast";
21 char str1[] = "czbk";
22 printf("%d\n",calStr(str));
23 printf("%d\n",calStr(str1));
24 return 0;
25 }
例1运行结图1所示
图1 例1运行结果
在例1中,calStr()函数除了函数名与strlen()函数不一样之外,函数参数、函数类型、函数返回值是一致的。第5~9行代码做了容错处理,防止传入的字符指针为空。。第10~14行代码,如果传入的字符指针不为空,则通过while循环判断指针指向的字符是否为‘\0’,如果不为‘\0’,使len加1。之后使指针自增,判断下一个字符是否为‘\0’…,如此循环,直到指针指向的字符为‘\0’,循环结束。第15行代码使用return关键字将len返回。第20~21行代码分别定义两个字符串str、str1;第22~23行代码调用calStr()函数计算两个字符串长度,并通过printf()函数将返回的字符串长度打印出来。由图1可知,calStr()函数准确计算出了两个字符串长度。