c语言 输出数组中元素个数

int strlen(char s[]);
void main()
{ int j;
char s[4]={'1','2','3','4'};

j=strlen(s[4]);

printf("%d",j);
getch();

}
int strlen(char s[])
{
int i=0;
while(s[i]!='\0')
i++;
return i;

}

想知道哪有错,望高手帮助。

主要有两个地方错误,我已经改好了,改动的地方做了注释
int strlen(char s[]);
void main()
{ int j;
char s[5]={'1','2','3','4','\0'}; /*把字符依次赋值给数组中的每个元素,数组并不会自动在末尾加上'\0',所以要手动加上'\0'。如果想让其自动加上'\0',可以使用这种语句:char s[]="1234";*/
j=strlen(s); /*数组做实参时只要写数组名就行了*/

printf("%d",j);
getch();
}
int strlen(char s[])
{
int i=0;
while(s[i]!='\0')
i++;
return i;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:
int data[4],length;
length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length of data[4]=%d", length ); //输出length of data[4]=4
第2个回答  2008-05-29
这行j=strlen(s[4]); 应改成j=strlen(s);就可以了,这样就可以知道这个数组的个数!
第3个回答  2008-05-29
printf 那一行 缺个逗号
第4个回答  2008-05-29
j=strlen(s[4]); 改为j=strlen(s);
相似回答