반응형




어떤 문자열에서 찾고자 하는 단어를 입력하면 총 몇가지 단어가 있는지 알려주는 코드이다.


strstr 함수로 구현하였으며, pos라는 포인터를 이용하여 문자열의 위치를 반환하며 구현한 코드이다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <string.h>
 
int main()
{
    char arr[2501];
    char search[2501];
    int *pos, cnt = 0;
    int i;
 
    scanf("%s", arr);
    scanf("%s", search);
 
    i = 0;
    while(1)
    {
        // 단어길이보다 찾고자하는 위치가 크면 종료
        if (strlen(arr)-< i)
            break;
 
        // 그것이 아닐 경우 pos에 위치 반환
        else
            pos = strstr(arr + i, search);        
 
        if (pos)
        {
            cnt++;
 
            while (1)
            {
                // pos와 같아질 때 까지 i++
                if (arr + i != pos)
                    i++;
 
                else if (arr + i == pos)
                {
                    // 찾을 단어 길이만큼 i 증가
                    i = i + strlen(search);
                    break;
                }
            }
        }
        else
            break;
    }
    
    printf("%d", cnt);
}
 
//                                                        This source code Copyright is Crocus 
//                                             Do you want to see more contents? click here >>
Crocus







반응형

'Applied > 알고리즘' 카테고리의 다른 글

다양한 Sorting을 보여주는 동영상  (0) 2016.08.06
숫자의 각 자릿수 구하기 알고리즘  (10) 2016.07.23
선택 정렬(Selection Sort)  (0) 2016.04.12
최댓값 최솟값 구하기  (0) 2016.03.25
재귀 함수  (0) 2015.11.27