简单的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);
} 展开
#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);
} 展开
6个回答
展开全部
注意:铅搜脊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));
可以改写旁派为桥镇char s[100];
或者为运消贺s分配空间
s = (char *)malloc(100*sizeof(char));
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问铅兆碧题出在
char *s; gets(s);
这两句 s这个地址你未赋值槐举 可能是野指针 很可能是不猜配能写的地址
试试初始化一下
char*s;
char p[200];
s=p;
gets(s);
char *s; gets(s);
这两句 s这个地址你未赋值槐举 可能是野指针 很可能是不猜配能写的地址
试试初始化一下
char*s;
char p[200];
s=p;
gets(s);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询