字符串是通过字符数组的形式来模拟,字符数组本质上就是一个普通的数组,每个元素的类型是char类型
代码:
//方法一
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Strlen(char* str){
return strlen(str);
}
int main(){
int length = Strlen("bonjour!");
printf("bonjour!占%d个字符\n", length);
system("pause");
return 0;
}
虽然C语言的字符串是字符数组,但多数情况下可以使用 char* 指向字符数组的第一个元素,然后用该指针来表示字符串(只修改函数部分)
//方法二
int Strlen(char* str){
int count=0;
if (*str != '\0'){
count++;
str++;
}
return count;
}
要求不可创建临时变量,借用递归解决(只修改函数部分)
//方法三
int strlen(char* str){
//str指向的是一个空字符串
if (*str == '\0'){
return 0;
}
//str指向的不是一个空字符串,当前字符是字符串中的一个元素
return 1+strlen(1+str);
}
运行结果: