poj 2503 Babelfish

  字符串查找。

  无耻的抄别人的代码,里面有两个函数自己没用过,算是又学到一些新知识吧。

  sscanf(str,"%s %s",str1,str2);//把str分为str1,str2

  bsearch();//二分查找函数

  题意:给出两两对应的字符串,输入一个字符串,输出与他对应的字符串。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct{
    char fn[11];
    char en[11];
}dict;
dict a[100010];
int q_cmp(const void * a,const void *b)
{
    return strcmp(((dict*)a)->fn, ((dict*)b)->fn);
}
int b_cmp(const void* a, const void* b)
{
    return strcmp((char*)a, ((dict*)b)->fn);
}int main()
{
    char str[30];
    int i,sign;
    i=0;sign=1;
    dict *p;
    while(gets(str))
    {
        if(str[0]=='\0')
        {
            sign=0;
            qsort(a,i,sizeof(dict),q_cmp);
            continue;
        }
        if(sign)
        {
            sscanf(str,"%s %s",a[i].en,a[i].fn);
            i++;
        }
        else
        {
            p = (dict*)bsearch(str,a,i,sizeof(dict),b_cmp);
            if(p)   puts(p->en);
            else    puts("eh");
        }
    }
    return 0;
}

 

posted @ 2013-08-23 20:22  yongren1zu  阅读(147)  评论(0编辑  收藏  举报