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; }