#include #include #include struct Data{ int x; int y; }; // x Çà,y ¿­ struct Data binarysearch( char *[], char *); // ¹ß°ßµÈ ºÎºÐÀÇ Çà°ú ¿­ÀÇ Á¤º¸¸¦ °¡Áö´Â struct Data ¸¦ ¹Ýȯ // char *[]´Â message¸¦ ³Ñ°Ü¹Þ°í char * ´Â ¿øÇÏ´Â ´Ü¾î¸¦ ³Ñ°Ü ¹Þ´Â´Ù. int main() { char *message[] = {"an empty street empty house", " hold in side my heart", " Alone room are getting smaller", "I wonder why I wonder", "I wonder where they are"}; char *word[5][5] = {"an", "empty", "street", "empty", "house", "hold", "in", "side", "my", "heart", "Alone", "room", "are", "getting", "smaller", "I","wonder", "why", "I", "wonder", "I", "wonder", "where", "they", "are"}; int i,j; char inkey2[10],message2[5]; //inkey2 ¸¦ char °¡ ¾Æ´Ñ inkey2[10] À¸·Î ¼±¾ðÇÞÀ½. struct Data wordindex; // c++ ¿¡¼­´Â ÇÔ¼ö Áß°£¿¡ º¯¼ö¸¦ ¼±¾ðÇØ¼­ »ç¿ëÇØµµ µÇÁö¸¸ // c ¿¡¼­´Â ÇÔ¼ö ¸Ó¸®¿¡ ¹Ýµå½Ã ¼±¾ðÇØ¾ß¸¸ ÇÕ´Ï´Ù. for (i=0; i<5; i++) { printf ("%s\n", message[i]); } // ¹®ÀÚ¿­À» ÀüºÎ º¸¿©ÁÝ´Ï´Ù. printf ("\n\n This is a INDEX.\n"); for(i=0;i<5;i++) { for(j=0; j<5; j++) { strcpy(inkey2,word[i][j]); //¹®ÀÚ¿­Àº º¯¼ö ´ëÀÔ Çü½ÄÀÌ ¾Æ´Ñ º¹»ç ÇÔ¼ö¸¦ ÀÌ¿ëÇϼ¼¿ä wordindex = binarysearch(message, inkey2) ; printf("%5d %5d %20s\n", wordindex.x,wordindex.y,inkey2); //wordindex = binarysearch(message,word[i][j]); //printf("%5d %5d %20s\n", wordindex.x,wordindex.y,word[i][j]); // ·Î ÇØµµ µÊ } } // ¹®Á¦Á¡ÀÌ ¸¹ÀÌ ³»Æ÷µÈ ºÎºÐÀÔ´Ï´Ù. Ãâ·ÂµÈ °á°ú¸¦ º¸¸é ¾Ë°ÚÁö¸¸ // °°Àº ´Ü¾î°¡ ³ª¿Ã ½Ã¿¡´Â ¸Ç óÀ½ Ãâ·Â µÈ°Í¸¸ ã¾Æ ³À´Ï´Ù. À̸¦ ¼öÁ¤ÇØ¾ß °ÚÁÒ // °¡·É 1 4 empty // 1 18 // ·Î Ãâ·ÂÀÌ °¡´ÉÇϵµ·Ï ¼öÁ¤ÇØ¾ß ÇÒ ºÎºÐ /* ÀÌÁø°Ë»öÀ¸·Î ¹®ÀÚ, Çà Ãâ·Â*/ getch(); } struct Data binarysearch(char *message[], char *key) /* ÀÌÁø°Ë»ö*/ // ÇÔ¼ö¸¦ ±¸ÇöÇÒ ¶§´Â Àü´ÞÀÎÀÚÀÇ º¯¼ö À̸§À» È®½ÇÈ÷ Àû¾î Áà¾ß ÇÕ´Ï´Ù. { struct Data temp; // ¹ß°ßµÈ À§Ä¡ Á¤º¸¸¦ °¡Áö´Â Àӽà º¯¼ö int i; char *cptr,*count; // cptr ¹®ÀÚ¿­¿¡¼­ ¹®ÀÚ°¡ ¹ß°ßµÇ À§Ä¡ÀÇ ÁÖ¼Ò // count y °ªÀ» ¾ò±â À§ÇÑ º¯¼ö Áï message[i]ÀÇ ½ÃÀÛ ÁÖ¼Ò for (i=0; i<5; ++i) { if((cptr = strstr(message[i],key)) != NULL) // message[i]¿¡¼­ key ¿¡ ¸Â´Â ´Ü¾î°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. À̶§ °á°ú ÁÖ¼Ò¸¦ cptr¿¡ ´ëÀÔ // ¸¸¾à ÀÌ°Ô NULL ÀÌ ¾Æ´Ï¶ó¸é Áï, ´Ü¾î°¡ ¹ß°Ü µÇ¾ú´Ù¸é.... { temp.x = i+1; // ¹ß°ßµÈ ÇàÀ» ÀÔ·Â i´Â 0 ºÎÅÍ ½ÃÀÛÇϹǷΠ+1 À» ÇØÁÖ¾ú´Ù. temp.y = 1; // y°ªÀº ¹Ù·Î ¾òÀ» ¼ö ¾øÀ¸¹Ç·Î ´ÙÀ½°ú °°ÀÌ ¾ò¾ú´Ù. ÃʱⰪ 1 count = message[i]; // count ¿¡ message[i]ÀÇ ½ÃÀÛÁÖ¼Ò¸¦ ³Ñ°ÜÁÜ. while(count != cptr) // ´Ü¾î°¡ ¹ß°ßµÈ ÁÖ¼Ócptr ÇÏ°í °°À» ¶§±îÁö count¸¦ Áõ°¡ ½ÃŰ ¸é¼­ °Ë»çÇÑ´Ù. // ¹°·Ð y°ªµµ Áõ°¡ ½ÃŲ´Ù. { temp.y++; count++; } } } return(temp); // ¹ß°ßµÈ Çà°ú ¿­À» ³Ñ±ä´Ù. }