C语言有计算字符串的库函数,需要引入string.h头文件,如果不使用库函数,如何计算字符串长度,以下三种算法实现:
1.递归,C语言字符串是以“\0”结尾的,递归的结束条件就是指针指向的当前元素不等于“\0”;
#include <stdio.h> int length(char* chars){ if(*chars != '\0'){ return 1 + length(chars + 1); } return 0; } int main(){ char chars[] = "abcd"; printf("%d\n", length(chars)); return 0; }
2.计数器,定义一个变量count,while循环,指针指向的当前元素不等于“\0”,count+1;
#include <stdio.h> int length(char* chars){ int count = 0; while (*chars != '\0'){ count ++; chars ++; } return count; } int main(){ char chars[] = "abcd"; printf("%d\n", length(chars)); return 0; }
3.指针相减,C语言语法规定,指针相减,是计算两个指针之间的元素个数。
#include <stdio.h> int length(char* chars){ char *charp = chars; while (*chars != '\0'){ chars ++; } return chars - charp; } int main(){ char chars[] = "abcd"; printf("%d\n", length(chars)); return 0; }