#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;
}
答案 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 ++之后。