c语言随意输入一个字符串判断这个字符窜是否包含“c”,若包含“c”则返回值是:1,否则为:0

#include<stdio.h>
int search(char str[],int m,char c)
{
int i;
for(i=0;i<m;i++)
{ printf("%c",str[i]);
if(str[i]==c)
break;}
if(i<m)return 1;
else
return 0;
}
void main()
{
char str[20],c;
int z,n;
scanf("%s",str);
for(n=0;str[n]!='\0';n++);
z=search(str,n,c);
printf("%d",z);
} 我这个程序哪里有问题,为什么实现不了题目的想法???????????

第1个回答  2012-04-18
就差这个地方 if(str[i]=='c')
这个c要加上单引号才表示一个字符,否则就会变成c的ASCII码
所以如果少了单引号,无论输入什么字符都会返回0
第2个回答  2012-04-18
你的程序编译会警告吧,你没有对c赋值就使用了,你在调用search之前,应该增加一句:
c:='c';

我现在就看见这个问题。你改了试试看,不要忽视编译的警告,最后的边界问题要注意。本回答被提问者采纳
第3个回答  2012-04-18
if(str[i]==c应该是if(str[i]==‘c’,m那里应该要先定义吧。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网