/*
//我自己试着写的
#include<stdio.h>
int main()
{
char st = 012;
scanf("%s ",&st);
int num = strlen(st);
printf("%d",st);
return 0;
}
*/
//正常写法
/*
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "abcde";
int len = strlen(arr);
printf("%d\n",len);
return 0;
}
*/
//传址法
/*
#include<stdio.h>
int my_strlen(char* str//arr)
{
int count = 0;
while(*str!='\0')
{
count++;//计数自加 1 个
str++;//地址位数向后自加 1 位
}
return count;
}
int main()
{
char arr[] = "abc123";
int len=my_strlen(arr);//数组传参,传过去的只有首元素的地址
printf("字符串长度= %d\n",len);
return 0;
}
*/
//递归法 ,不能创建临时变量
#include<stdio.h>
int my_strlen(char* str)//arr
{
//int count = 0;
if(*str!='\0')
{
//count++;//计数自加 1 个
//str++;//地址位数向后自加 1 位
return 1+my_strlen(str+1);
}
return 0;
//return count;
}
int main()
{
char arr[] = {};
scanf("%s",&arr);
int len=my_strlen(arr);//数组传参,传过去的只有首元素的地址
printf("字符串长度= %d\n",len);
return 0;
}
运行结果如下:

C语言字符串长度计算
本文介绍了使用C语言实现字符串长度计算的方法,包括直接利用库函数strlen()、通过指针遍历字符串直至结束符以及采用递归方式计算长度。每种方法都有详细的代码示例。
1775

被折叠的 条评论
为什么被折叠?



