黑马程序员技术交流社区

标题: 前辈们,帮忙看下这个FOR语句哪里有问题。 [打印本页]

作者: aofex    时间: 2015-6-1 09:45
标题: 前辈们,帮忙看下这个FOR语句哪里有问题。
#include <string.h>
#include <stdio.h>

int char_contains(char str[],char c);
int main ()
{
    int result = char_contains("itcast",'0');

    printf("%d\n",result);
    return 0 ;

}

int char_contains(char str[],char c)
{
16       for (int i=0; i<strlen(str);i++)
    {
18        if(str[i])==c)
        {
            return 1;
        }
    }
    return 0;

}
前辈们,我的系统是windows7 32位的,装的是codeblocks的,在编译上述编码的时候老是提示16,和18行有问题,唉,照视频上打的,实在看不出哪里有问题。。。。
作者: 飞翔的猪    时间: 2015-6-1 10:00
应该是第十五行的错吧,char *str[]
作者: 张晓珊    时间: 2015-6-1 10:06
18 行少了半个括号,字符串参数一般用指针传吧。
作者: 13673696542    时间: 2015-6-1 12:57
楼说的对,你的if语句那括号不是成对出现的,少了一个。
作者: aofex    时间: 2015-6-1 16:21
飞翔的猪 发表于 2015-6-1 10:00
应该是第十五行的错吧,char *str[]

:(  改了  也不行,弄一下午了 悲催的!!!
作者: aofex    时间: 2015-6-1 16:23
张晓珊 发表于 2015-6-1 10:06
18 行少了半个括号,字符串参数一般用指针传吧。

会不会是编译器的问题呢???已经把那半个括号去了   补行!!!
作者: 小龙女的萝卜    时间: 2015-6-1 18:30
你是想要什么样的结果呢?把括号补上,试了下,没有报错,结果是0啊,
这个程序的意思很用函数查找输入字符串中是否有某个字。你传入字符串itcast,要查找的字符是'0',而这个字符串例没有 ‘0’ 这个字符,所以输出结果是0,当地把‘0’换成‘i’等字符就会显示输出1了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2