永发信息网

C语言程序,求字符串长度。请大家帮我看看哪错了,在线等→_→

答案:1  悬赏:40  手机版
解决时间 2021-03-21 03:36
  • 提问者网友:温旧梦泪无声
  • 2021-03-20 04:30
C语言程序,求字符串长度。请大家帮我看看哪错了,在线等→_→
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-03-20 05:22
哥们,你都没有输入,你怎么计算啊:
length = f(n);
这句的前面加一句gets(n);


还有一点就是int i, j;这句改为int i, j = 0;
还有return (j-1);这句和下一句交换一下位置,并改为return (j);


修改后:
#include 
int main(void)
{
    int f(char * n);
    char n[100];
    int length;

    printf("请输入字符串:");
    gets(n);
    length = f(n);
    printf("字符串长度为:%d
",length);

    return 0;
}

int f(char * n)
{
    int i,j = 0;
    for(i = 0;*(n +i) != '';i++)
    {
        j++;

    }
    return(j);
}追问谢谢您!!
输入那块和j=0我提问完之后都意识到了,
不过您说“return (j-1);这句和下一句交换一下位置,并改为return (j); ”
这一句我是从网上抄的,所以也不知道为什么,改了之后也还是不知道为什么,所以您能不能帮我解释一下~谢谢啦!!追答'\0'是一个字符串的结束标识,遇到'\0'就不循环了,实际上j的最后结果就是最后字符串的有效长度,即实际长度,return放到循环内部,那么第一次循环的时候就会跳出函数了,得等到循环结束才能测到字符串长度,所以放到循环外面。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯