<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%AC%B8%EC%9E%90%EC%97%B4%EA%B2%80%EC%83%89%2F%ED%97%88%EC%95%84%EC%98%81</id>
	<title>문자열검색/허아영 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%AC%B8%EC%9E%90%EC%97%B4%EA%B2%80%EC%83%89%2F%ED%97%88%EC%95%84%EC%98%81"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EC%97%B4%EA%B2%80%EC%83%89/%ED%97%88%EC%95%84%EC%98%81&amp;action=history"/>
	<updated>2026-05-15T09:36:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EC%97%B4%EA%B2%80%EC%83%89/%ED%97%88%EC%95%84%EC%98%81&amp;diff=50507&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:29, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EC%97%B4%EA%B2%80%EC%83%89/%ED%97%88%EC%95%84%EC%98%81&amp;diff=50507&amp;oldid=prev"/>
		<updated>2021-02-07T05:29:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== 소감 ===&lt;br /&gt;
어쩌다가 이렇게 길어지게 됐는지 모르겠다.&lt;br /&gt;
여튼 처음 문제를 접했을 때 연필을 끄적거리지 않았어서 후회가 생긴다.&lt;br /&gt;
연필을 잡지 않으면 시간이 배로 드는것 같다. &lt;br /&gt;
앞으로 실수하지 않게 데블스캠프때 배웠듯이, 건축에 있어서 설계를 작성하는것은 중요한 것 처럼 &lt;br /&gt;
프로그래밍에 있어서도 구상과 설계는 매우 중요하다고 느낀다. &lt;br /&gt;
&lt;br /&gt;
==== 알고리즘 ====&lt;br /&gt;
그냥 알고리즘을 생각했다. 어떻게 보면 복잡한 것 같기도 하다.ㅡㅠ &lt;br /&gt;
His teaching method is very good.&lt;br /&gt;
이번 프로그래밍의 알고리즘. &lt;br /&gt;
단어의 시작을 중점으로 한다.(나는 문자열 이라기 보다는 단어 검색 중심으로 짠것같다.)&lt;br /&gt;
즉, H, t, m, i, v, g가 기점이 될 수 있다.&lt;br /&gt;
문장 속의 단어의 첫 글자와, 찾아볼 단어의 첫글자의 동일한가 부터 시작한다.&lt;br /&gt;
만약에 Hot이라는 단어를 저 문장에서 찾았을때, 먼저 H로 시작하는 단어가 있기 때문에 His와 비교를 당하게 된다.&lt;br /&gt;
다음은 o와 i.. 다르기 때문에 found 이 0이 되어서 찾지 못했음을 알린다.&lt;br /&gt;
만약에 첫 글자 부터 동일하지 않다면 비교도 하지 않고도 찾지못함을 알린다.&lt;br /&gt;
&lt;br /&gt;
=== 소스 ===&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void exist_word(char x[40], int exist_str[10]); //x[i]에 문자열의 유무&lt;br /&gt;
 int compare_str(char x[40], char search_str[15], int exist_str[10]); // 문자열 비교&lt;br /&gt;
 &lt;br /&gt;
 int word_num = 1, search_str_num = 0;&lt;br /&gt;
 int found = 0;	int temp = 0;&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	char x[40] = &amp;quot;His teaching method is very good.&amp;quot;;&lt;br /&gt;
 	char search_str[15];&lt;br /&gt;
 	int exist_str[10]; // exist_str[i]에는 x문자열중 i번째 문자열이 몇번째 문자에 나오나 &lt;br /&gt;
 	FILE *fp;&lt;br /&gt;
 	fp = fopen(&amp;quot;result.out&amp;quot;, &amp;quot;w&amp;quot;);&lt;br /&gt;
 	while(1){&lt;br /&gt;
 		word_num = 1; search_str_num = 0; found = 0; temp = 0;&lt;br /&gt;
 		printf(&amp;quot;끝내려면 &amp;quot;&amp;quot;EE&amp;quot;&amp;quot;입력\n&amp;quot;); //출력.&lt;br /&gt;
 		printf(&amp;quot;자료 -&amp;amp;gt; %s&amp;quot;, x);&lt;br /&gt;
 		printf(&amp;quot;\n찾을 문자열 -&amp;amp;gt; &amp;quot;);&lt;br /&gt;
 		scanf(&amp;quot;%s&amp;quot;, search_str);&lt;br /&gt;
 		fprintf(fp,&amp;quot;자료 -&amp;amp;gt; %s&amp;quot;, x); //result.out에 저장.&lt;br /&gt;
 		fprintf(fp, &amp;quot;\n찾을 문자열 -&amp;amp;gt; &amp;quot;);&lt;br /&gt;
 		fprintf(fp, &amp;quot;%s&amp;quot;, search_str);&lt;br /&gt;
 		if(search_str[0] == &amp;#039;E&amp;#039; &amp;amp;amp;&amp;amp;amp; search_str[1] == &amp;#039;E&amp;#039;)&lt;br /&gt;
 			break;&lt;br /&gt;
 		exist_word(x, exist_str);&lt;br /&gt;
 		found = compare_str(x, search_str, exist_str);&lt;br /&gt;
 		&lt;br /&gt;
 		switch(found){&lt;br /&gt;
 		case 1:&lt;br /&gt;
 			fprintf(fp, &amp;quot;\nfirst found -&amp;amp;gt; %d\n\n&amp;quot;, exist_str[word_num]+1);&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 0:&lt;br /&gt;
 			fprintf(fp, &amp;quot;\nNot found!\n\n&amp;quot;);&lt;br /&gt;
 			break;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	fclose(fp);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void exist_word(char x[40], int exist_str[10])&lt;br /&gt;
 {&lt;br /&gt;
 	int num = 2, x_n = 0;&lt;br /&gt;
 	exist_str[1] = 0;&lt;br /&gt;
 	while(x[x_n])&lt;br /&gt;
 	{&lt;br /&gt;
 		if(x[x_n] == &amp;#039; &amp;#039;)&lt;br /&gt;
 		{&lt;br /&gt;
 			exist_str[num] = x_n + 1; //빈칸 다음에 문자열이 나온다고 가정.&lt;br /&gt;
 			++num;&lt;br /&gt;
 		}&lt;br /&gt;
 		++x_n;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int compare_str(char x[40], char search_str[15], int exist_str[10])&lt;br /&gt;
 {	&lt;br /&gt;
 	if(x[exist_str[word_num]] != search_str[search_str_num])&lt;br /&gt;
 	{&lt;br /&gt;
 		++word_num;	&lt;br /&gt;
 		if(exist_str[word_num] &amp;amp;gt;= 0)&lt;br /&gt;
 			compare_str(x, search_str, exist_str);&lt;br /&gt;
 		&lt;br /&gt;
 	}else{&lt;br /&gt;
 		temp = exist_str[word_num];&lt;br /&gt;
 		while(search_str[search_str_num])&lt;br /&gt;
 		{	&lt;br /&gt;
 			if(x[temp] == search_str[search_str_num]){&lt;br /&gt;
 				found = 1;&lt;br /&gt;
 				++temp;&lt;br /&gt;
 				++search_str_num;&lt;br /&gt;
 			}else{&lt;br /&gt;
 				found = 0;&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return found;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== C++로 문자 검색.  ====&lt;br /&gt;
 //cpp1.cpp&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;quot;class.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	Search_ch c;&lt;br /&gt;
 	c.input();&lt;br /&gt;
 	c.search();&lt;br /&gt;
 	c.print();&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 //cpp2.cpp&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;quot;class.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 void Search_ch::input()&lt;br /&gt;
 {&lt;br /&gt;
 	cin&amp;amp;gt;&amp;amp;gt;str;&lt;br /&gt;
 	cin&amp;amp;gt;&amp;amp;gt;ch;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int Search_ch::search()&lt;br /&gt;
 {&lt;br /&gt;
 	int i, str_len, k;&lt;br /&gt;
 	str_len = strlen(str);&lt;br /&gt;
 &lt;br /&gt;
 	for(i = 0; i &amp;amp;lt;= str_len-1; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if(str[i] == ch)&lt;br /&gt;
 		{&lt;br /&gt;
 			k = i;&lt;br /&gt;
 			break;&lt;br /&gt;
 		}else{&lt;br /&gt;
 			k = 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return k;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Search_ch::print()&lt;br /&gt;
 {&lt;br /&gt;
 	int found_num = search();&lt;br /&gt;
 	if(found_num == 0){&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Not Found!!&amp;quot;;&lt;br /&gt;
 	}else if(0 &amp;amp;lt; found_num &amp;amp;amp;&amp;amp;amp; found_num &amp;amp;lt; strlen(str)){&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Found!! &amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;quot; &amp;amp;lt;&amp;amp;lt;found_num+1; &lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 //class.h&lt;br /&gt;
 class Search_ch &lt;br /&gt;
 {&lt;br /&gt;
 private:&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	char str[20];&lt;br /&gt;
 	char ch;&lt;br /&gt;
 	void input();&lt;br /&gt;
 	int search();&lt;br /&gt;
 	void print();&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
=== 나한테 할 말 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[LittleAOI]] [[문자열검색]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>