Coding & Programming/C, C++

[C언어/C++] 파일명에서 확장자만 추출하기-Extract file extension from filename(strrchr function example)

mainCodes 2021. 5. 5. 20:44

[C/C++] 파일명에서 확장자만 추출하기-Extract file extension from filename

 

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و

 

컴퓨터에는 실행파일, 문서 파일, 이미지 파일, 음악파일 등에 따라 .exe, .pptx, .xlsx, .hwp, .jpg, .gif, mp3 등 다양한 형태의 확장자가 존재합니다. 이번 포스팅은 "maincodes.exe", "365일 생활 패턴 분석.hwp", "2020발표자료.pptx" 등과 같은 전체 파일명에서 마침표(.)로 구분되는 .exe, .pptx, .xlsx, .gif 등 확장자만을 추출하는 예제입니다.

 

🔗 파일 확장자 추출 예제(Example):

 

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
#include <stdio.h>
#include <string.h>
 
#define MAX_PATH 256
 
//파일 확장자 추출 함수
char* getExt(char* filename)
{
    static char buf[MAX_PATH] = "";
    bool ret = false;
    char* ptr = NULL;
 
    ptr = strrchr(filename, '.');
    if (ptr == NULL)
        return NULL;
 
    strcpy(buf, ptr + 1);
 
    return buf;
}
 
int main()
{
    char filename1[256= "maincodes.abcd";
    char filename2[256= "jollytree.xyz";
    char filename3[256= "maincodes.tistory.com.maincodes";
    char* ptr = NULL;
 
    ptr = getExt(filename1);
    printf(" >> [%s] 파일의 확장자는 [%s]입니다.\n", filename1, ptr);
 
    ptr = getExt(filename2);
    printf(" >> [%s] 파일의 확장자는 [%s]입니다.\n", filename2, ptr);
 
    ptr = getExt(filename3);
    printf(" >> [%s] 파일의 확장자는 [%s]입니다.\n", filename3, ptr);
 
    return 0;
}
cs

 

🔗 실행결과(Output):

 

상 JollyTree였습니다. (•̀ᴗ•́)و