C语言题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

#include<stdio.h>

int length(char *p[99])
{
int n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
int main(void)
{
char *str[99];
int len;
scanf("%s",str);
len=length(str);
printf("%d\n",len);
}

为什么不管输入什么 结果都是104

#include<stdio.h>

int length(char *p)//传参这样
{
int n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
int main(void)
{
char str[99];//这里有问题 定义数组就可以了
int len;
scanf("%s",str);
len=length(str);
printf("%d\n",len);
}

有帮助的话 给分 给最佳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-24
改两个地方就可以了:
#include<stdio.h>

int length(char *p)
{
int n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
int main(void)
{
char str[99]={0};
int len;
scanf("%s",str);
len=length(str);
printf("%d\n",len);
}

我在linux下编译没有问题,结果也是正确的
相似回答