请帮忙看下这个程序吧,想了半天了

#include

int leng(char*s)
{
if(s)
return leng(s+1)+1;
return 0;
}

void main()
{
char s[100];
scanf("%s", &s);
int l=leng(s);
printf("%d",l);
}

 #include <stdio.h>
int leng(char*s)
{
    int n=0;
    if(*s)
        return n=leng(s+1)+1;

    return n;
}
void main()
{
    char s[100];
    scanf("%s", s);//修改,字符数组名s代表了数组起始地址
    int l=leng(s);
    printf("%d",l);
}

输入一个字符串,输出它的长度

头文件缺少了。

判断输入的字符串长度,完全不用c库的方式

#include
int leng(char*s)
{
if (*s)
return leng(++s) + 1;
return 0;
}
void main()
{
char s[100];
scanf_s("%s", &s);
int l = leng(s);
printf("%d", l);
}

还是一个比较“高深”的递归算法,个人认为还是使用系统的、或者 for 循环来的比较简单的。
当然,如果你是再学习递归算法别当别论。如果是,建议你增加 printf 来分析中间过程。

 int leng(char*s)
{
    // 在这里增加 printf 输出你想看到的
if(s)
return leng(s+1)+1;
return 0;
}