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

要求用指针方法并不用strlens函数#include<stdio.h>intlongs(char*s){inti=0,n=0;for(i=0;*(s+i)!='/0';... 要求用指针方法并不用strlens函数

#include<stdio.h>
int longs(char *s)
{
int i=0,n=0;
for(i=0;*(s+i)!='/0';i++)
n++;
return(n-1);
}

void main()
{
char *s;
char c[100];
gets(c);
s=c;
longs(*s);
printf("%d",*s);
}

我的编译通过了,但是运行错误
展开
 我来答
zhao_jessica
2009-12-01
知道答主
回答量:10
采纳率:0%
帮助的人:4.6万
展开全部
传入参数应该是longs(s)不是longs(*s)

*s就是把s位置的字符数值当做地址来处理了。自然出错了。
你试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
christyhtt
2009-12-01
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
void main()
{
char *s;
char c[100];
gets(c);
s=c;
int n=longs(*s);
printf("%d",n);
}//最后两行修改下试试呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者8Z3TndhG8H
2019-02-06 · TA获得超过3666个赞
知道小有建树答主
回答量:3105
采纳率:25%
帮助的人:175万
展开全部
#include
<stdio.h>

int
getlen(char
*s)
{

int
c=0;

while(*s)
{s++;c++;}

return
c;
}
/*
way
2
int
getlen(char
s[])
{

int
i;

for(i=0;s[i];i++)
{}

return
i;
}
*/
int
main()
{

char
s[256];

gets(s);

printf("%d\n",getlen(s));

return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风倾_
2019-12-21 · TA获得超过243个赞
知道答主
回答量:3788
采纳率:14%
帮助的人:259万
展开全部
1.循环读取,直到为 '\0' 时,则是字符串结尾。
#include <stdio.h>// 计算字符串str长度,并返回int lenstr(const char* str){int i = -1;while (str[++i]); // while循环在 str[++i] 为 '\0' 时结束return i;}int main(){char p[1000];printf("input a string:");gets(p);printf("string len: %d", lenstr(p));return 0;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式