简单的c语言,我编的这个函数有什么问题,为什么出不来结果?

想要统计输入字符串的个数,谢谢大神#include<stdio.h>intslen(char*a){inti=0;while(*a){i++;a++;}returni;}... 想要统计输入字符串的个数,谢谢大神
#include <stdio.h>
int slen(char *a)
{
int i=0;
while(*a)
{
i++;
a++;
}
return i;

}

int main(void)
{
int len;
char *s;
gets(s);
len=slen(s);
printf("%d",len);
}
展开
 我来答
匿名用户
2013-09-24
展开全部

int main(void)
{
int len;
char s[100];   // 将 char *s 改为迹蠢闷档亮 char s[100];
   姿弯 gets(s);
len=slen(s);
printf("%d",len);
}
a4138
2013-09-24 · TA获得超过265个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:103万
展开全部

注意:铅搜脊gets函数可以无限读取,不会判断上限,所以应槐渗该确保s的空间足够大,以便在执漏歼行读操作时不发生溢出。
char *s没有申请空间。可以用char s[80]

另外,最后一行应该有返回值:return 0;

#include <stdio.h> 
int slen(char *a)

  int i=0; 
  while(*a) 
  {  
    i++;  
 a++; 
  }
  return i;
}
int main(void)

  int len; 
  char s[80];    
  gets(s); 
  len=slen(s); 
  printf("%d",len);
  return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-24
展开全部
main 中s没有分配空间。
可以改写旁派为桥镇char s[100];

或者为运消贺s分配空间
s = (char *)malloc(100*sizeof(char));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上官萧敬
2013-09-24 · TA获得超过1048个赞
知道小有建树答主
回答量:760
采纳率:0%
帮助的人:786万
展开全部
char *a表示指针指向a的地址。但是gets(s)应碧激孝该是个字符悔稿串。
#include <铅乎stdio.h>
int slen(char a)
{
int i=0;
while(a)
{
i++;
a++;
}
return i;

}

int main(void)
{
int len;
char s;
gets(s);
len=slen(s);
printf("%d",len);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月生恋珊
2013-09-24 · TA获得超过582个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:44.5万
展开全部
问铅兆碧题出在
char *s; gets(s);
这两句 s这个地址你未赋值槐举 可能是野指针 很可能是不猜配能写的地址
试试初始化一下
char*s;
char p[200];
s=p;
gets(s);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式