写一个函数求一个字符串的长度。在main函数中输入字符串,并输出长度

如题。
我写了个,可是最后结果不是想要的,请大虾们帮改一下~
程序:
# include <stdio.h>
void main()
{char a[50],*p;
int n;
printf("put date:\n");
a[50]=getchar();
p=a;
for(p=a,n=0;p='\0';p++)
{printf("%s",p);++n;}
printf("the number is:\n");
printf("%d",n);
getch();
}
一楼的朋友你说的方法不行啊~~~
请详细解答一下可以吗?

第1个回答  2007-08-05
#include<stdio.h>
int sn(char *a)
{
int i=0;
while(*a++)
i++;
return i;
}
void main()
{
int sum;
char a[100];
scanf("%s",a);
sum=sn(a);
printf("\n");
printf("%d\n",sum);
}本回答被提问者和网友采纳
第2个回答  2020-02-12
#include
#include
int
main()
{
int
fun(char
*);
//fun必须要返回字符串的长度
int
a;
//字符串长度是个整数值
char
str[10];
gets(str);
a=fun(str);
//用整型变量来接收fun函数的返回值
printf("%d\n",a);
}
int
fun(char
*a)
{
int
z;
z=strlen(a);
return
z;
}
第3个回答  2007-08-05
a[50]=getchar();
getchar()只是获取一个字符,你这样写就是读取字符串的第一个字符并放入a[50]这个单元,不但获取不了字符串,还造成了数组越界访问
第4个回答  2007-08-05
直接用<string.h>中的
int strlen(char *)
就可以了啊!!!
第5个回答  2007-08-05
for(p=a,n=0;p='\0';p++)

p='\0'改成*p='\0'
相似回答