查找字符串的长度

时间:2017-11-04 12:54:40

标签: c string

  1. 我编写了一个字符串长度的代码。
  2. 这个编译成功购买有一些问题了 输出。
  3. 输入字符串后,我的输出卡住了。
  4. 我必须使用指针找到长度
  5. #include<stdio.h>
    int leng(char*);
    void main()
    {
        char str[20];
        scanf("%s",str);
        printf("%s",str);
        int l;
        l=leng(str);
        printf("%d",l);
    }
    
    int leng(char*p)
    {
        int l=0;
        while(*p!='\0')
        {
            l++;
        }
        return l;
    }
    

3 个答案:

答案 0 :(得分:2)

在你的代码中,问题就在这里

while(*p!='\0')

此处指针*p不会递增。所以,while循环工作无限,可能程序崩溃。

所以,使用

while(*p++!='\0')

而不是

while(*p!='\0')

答案 1 :(得分:0)

#include<stdio.h>
int leng(char*);
int main()
 {
  char str[20];
  scanf("%s",str);
  printf("%s", "Length of input string is ");
  int l;
  l=leng(str);
  printf("%d",l);
    }

int leng(char*p)
{
int l=0;
while(*p!='\0')
{
    l++;
    p = p +1;
}
return l;
}

答案 2 :(得分:-1)

第一个错误 - 您还没有使用'&amp;'在scanf里面。 第二个错误 - 您需要在while循环中将l ++放在p ++之后。