纠错(用指针)写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
以下是我写的代码:(运行时出现错误,我不知道是哪里错了)#include<stdio.h>intmain(){chara[20];intstringlength(char...
以下是我写的代码:(运行时出现错误,我不知道是哪里错了)
#include<stdio.h>int main(){ char a[20]; int stringlength(char *p); int i; gets(a); stringlength(a); printf("The length of the string is %d",i); return 0;}int stringlength(char *p){ int i; while(*p!='\0') { i++; p++; } return i;}
究竟是为什么会出现以上这样的错误呢? 展开
#include<stdio.h>int main(){ char a[20]; int stringlength(char *p); int i; gets(a); stringlength(a); printf("The length of the string is %d",i); return 0;}int stringlength(char *p){ int i; while(*p!='\0') { i++; p++; } return i;}
究竟是为什么会出现以上这样的错误呢? 展开
2个回答
展开全部
展开全部
主函数里面
stringlength(a);
printf("The length of the string is %d",i-1);
改为
i = stringlength(a);
printf("The length of the string is %d",i-1);
或者
printf("The length of the string is %d",stringlength(a)-1);
因为你函数stringlength()的返回值在主函数里面没有变量接收啊。
所以输出i的时候就把分配给i的内存里面的乱七八糟弄出来了。
另外我刚试了一下,因为你的程序输入字符串是回车确定,由于回车也是个字符,所以你在输出的时候还要把字符串的值减1才是你打的字符值。 答案我改好了。
stringlength(a);
printf("The length of the string is %d",i-1);
改为
i = stringlength(a);
printf("The length of the string is %d",i-1);
或者
printf("The length of the string is %d",stringlength(a)-1);
因为你函数stringlength()的返回值在主函数里面没有变量接收啊。
所以输出i的时候就把分配给i的内存里面的乱七八糟弄出来了。
另外我刚试了一下,因为你的程序输入字符串是回车确定,由于回车也是个字符,所以你在输出的时候还要把字符串的值减1才是你打的字符值。 答案我改好了。
追问
我按你的方法试了下,不行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询