logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

brute-force 알고리즘을 이용한 패턴 위치 찾기

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

// brute-force 알고리즘을 이용한 패턴 위치 찾기

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

int brutesearch();

main()
{
         char Text[] = "aababba";   
         char Pattern[] = "abb";
         
         int indexPattern = brute(Pattern, Text);

         if(indexPattern == -1)
                  printf("[Failure] Can't Find Pattern <%s>", Pattern);
                  else 
                                printf("[Success] Index of Pattern <%s> at <%s> => %d \n", Pattern, Text, indexPattern+1);
}

int brute(char *p, char *a) //brute-force 탐색 알고리즘
{
         int i, j, M=strlen(p), N=strlen(a);
         for (i=0, j=0; j<M && i<N; i++, j++){
                  while(a[i] != p[j])
                  {
                                i -= j-1;
                                j=0;
                  }
                  if (j == M) return(i-M);
                  else return (i);
         }
}

 

//출력은 [Success] Index of Pattern <abb> at <aababba> => 4
//알고리즘에 대한 설명은 교재를 참조하세요!!
//교재는 정익사 출판사의 C언어로 설명한 알고리즘 입니다.

 

List of Articles
No. Subject Author Date Views
23 [Linux] Pthread 사용법, Thread 동기화 총정리 digipine 2017.11.01 294049
22 Unix C/C++ Input and Output Function Reference digipine 2017.11.01 88073
21 Solaris에서 pmap을 이용하여 백그라운드 프로세스 메모리 크기 구하기 digipine 2017.10.29 28598
20 Linux C 언어로 Shell 명령어 실행하기 digipine 2017.11.01 22587
19 C++ 컴파일 오류(error): variable 'std::istringstream sstream' has initializer but incomplete type digipine 2017.11.02 21077
18 wchar_t에 대하여 digipine 2017.11.01 7343
17 [shared lib] so 동적 라이브러리 만들기와 사용법 - 리눅스 digipine 2017.11.01 6434
16 STL MAP 예제로 공부하기 digipine 2017.10.29 5204
15 fopen 파일 열기 모드 옵션 정리 digipine 2017.11.02 3894
14 make -j 옵션으로 컴파일 속도 최적화 하기 digipine 2017.11.01 2759
13 C++에서 extern의 역할, 기능 digipine 2017.10.29 2656
12 MD5 파일 변조 검사 관련 소스 (리눅스/Windows) digipine 2017.10.29 2613
11 Callback in C++ 와 Delegate 차이점 digipine 2017.11.01 2525
10 [C/C++] 현재시간 구하기 digipine 2017.10.28 2212
9 C++ Atomic 클래스에 대해서 file 엉뚱도마뱀 2017.12.13 2139
8 C 에서 Overloading 구현 digipine 2017.11.01 1790
» brute-force 알고리즘을 이용한 패턴 위치 찾기 digipine 2017.10.29 1501
6 [linux] zlib build 방법 digipine 2017.11.01 1483
5 소켓 통신을 이용한 HTTP 서버 개발 강의록 file digipine 2020.08.01 1482
4 [C/C++] Random UUID String 생성 코드 digipine 2021.10.21 1302
Board Pagination Prev 1 2 Next
/ 2