08/03/30 15:09:28
>>862
二分探索には標準ライブラリ関数bsearchを使いました。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp( const void* key, const void* elm )
{
return strcmp( (const char*)key, *(const char**)elm );
}
int main(void)
{
// 規定の文字列。辞書順にソートされていること。
static const char* const table[] = {
"abc", "def", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz",
};
const char** hit;
char str[101];
printf( "検索文字列:" );
scanf( "%100s", str );
hit = (const char**)bsearch( str, table, sizeof(table)/sizeof(*table), sizeof(*table), cmp );
if( hit )
printf( "'%s'は%d番目に存在します。\n", str, hit-table );
else
printf( "'%s'は存在しません。\n", str );
return 0;
}