这两种求字符串长度的方法差别在哪里?第二种错在哪里?求大佬解答。
这段代码就可以求出来字符串里面字母的个数#include<stdio.h>
#include<string.h>
int fun(char str[])
{
//请在该注释语句下方编写代码
int i=0,num=0;
int len=strlen(str);
for( ;i<len;i++)
{
if(str[i]>=65 && str[i]<=90)
{
num++;
}
else if(str[i]>=97 && str[i]<=122)
{
num++;
}
}
return num;
}
int main()
{
char str[20]="I love you";
int num=fun(str);
printf("%d",num);
return 0;
}
但是为什么下面这段代码求出的字符串里面的字母个数是错的
#include<stdio.h>
int fun(char str[])
{
//请在该注释语句下方编写代码
int i=0,num=0;
int len=sizeof(str)/sizeof(str[]);
for( ;i<len;i++)
{
if(str[i]>=65 && str[i]<=90)
{
num++;
}
else if(str[i]>=97 && str[i]<=122)
{
num++;
}
}
return num;
}
int main()
{
char str[20]="I love you";
int num=fun(str);
printf("%d",num);
return 0;
}