erDaren
V2EX  ›  问与答

关于 bsearch 的一些疑问

  •  
  •   erDaren · Sep 12, 2015 · 1790 views
    This topic created in 3922 days ago, the information mentioned may be changed or developed.

    做了一个 char* strs[], 然后给每个元素分配内存并读入字符串,然后调用 qsort ,然后做一个 char[],调用 bsearch ,然后就出错了...
    就像这样:
    int main ()
    {
    int strNum = 4;
    int strLen = 5;
    char* strs[strNum];
    inputStr (strs, strNum );
    qsort (strs, strNum, sizeof (char), compareStr );
    char str1[] = "aaaa";
    char
    tempStr = (char)bsearch (str1, strs, strNum, sizeof (char), compareStr );
    if (tempStr )
    printf ("tempStr.%s.",tempStr );
    printStr (strs, strNum );

    return 0;
    

    }

    隐约我觉得可能我传给 bsearch 的参数有问题, 反正我把 bsearch 注释掉就跑过了...

    求大神给看看,网上搜了一圈都是说 int 数组调用 bsearch 的...

    4 replies    2015-10-05 22:29:53 +08:00
    dorentus
        1
    dorentus  
       Sep 13, 2015 via iPhone
    str1 是 char * 的数组,你在那行用的都是 char 自然不对了
    dorentus
        2
    dorentus  
       Sep 13, 2015 via iPhone
    @dorentus 啊不对 我看错了……
    erDaren
        3
    erDaren  
    OP
       Sep 13, 2015
    @dorentus 我还是学学英语去 stackoverflow 问吧...
    sorra
        4
    sorra  
       Oct 5, 2015
    你没有把报的错贴出来
    你的目的是查找字符串,而你的参数和返回类型看起来都不对,帮你搜了下 bsearch 查找字符串的写法 http://bbs.csdn.net/topics/280007302
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   939 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:30 · PVG 04:30 · LAX 13:30 · JFK 16:30
    ♥ Do have faith in what you're doing.