康王70毫升多少钱一瓶:大家看一个C程序 为什么他总是返回0呢?帮忙弄一下~~~~~~~~~~~~~~~~~~~~~~~~~~~

来源:百度文库 编辑:中科新闻网 时间:2024/05/01 00:55:04
#include "stdio.h"
int function(char *p,char str[]);
main()
{int i,z; char str[80];char str1[3][10];
for(i=0;i<3;i++)
{printf("input the%dstring:",i+1);
gets(str1[i]);}
printf("input the strings:\n");
gets(str);
z=function(str1[0],str);
printf("%d",z);
getch();
}
int function(char *p,char str[])
{
int i,x=0;
for(i=0;i<3;i++)
if(strcmp(p[i],str)==0) x=1; return(x);
}

你们看一下是那里出了错!谢谢!~~~~~~~~~~~~

问题如 Zz小虾 所描述,但是解决方法不对。
而是应该 if(strcmp(p[i],str)==0)改成if(strcmp(p+i,str)==0)
而 if(strcmp(p+i,str)==0) 的意思就是从 p+i位置开始后面的字符串和 字符串 str 比较,这样就可以得到正确的比较结果。

C学了有什么用

if(strcmp(p[i],str)==0)改成if(strcmp(p,str)==0)
因为p是指针,如果使用p[i],则只表示数组中第(i+1)那个字符,
一个字符当然不能和字符串相等,所以一直返回0了。