파일 확장자 얻어내기

익명 사용자의 이미지

예전에 파일명으로 인자를 넘겨주면 확장자...
"."다음의 위치라고해야하나요..
암튼 확장자의 포인터위치나 아무튼..관련 정보를 리턴해주는
편한(?) 함수를 썼었던 기억이나는거같은데...

지금 확장자 필터가 필요해서 쓸려하니깐..
기억이 안나네요..
그냥 strcmp로 할수도 있겠지만..
워낙 게을러서..ㅡㅡ;;

익명 사용자의 이미지

간단히 문자열 거꾸로 뒤집는 함수 하나 만들고,
'.'찾아서, 그만큼 떼어내고 다시 뒤집으면 확장자겠죠.
(물론, 오른쪽에서부터 검색할 수 있는 함수가 있으면 뒤집을 필요는 없겠
죠)

.tar.gz같은건 제대로 동작 안하겠네요.
일정한 확장자 목록이 있으면 목록에 매치되는걸로 검색하면 될듯.

익명 사용자의 이미지

어떤 소스코드에서 char * strrchr ( const char *, int )
함수를 사용해서 . 다음의 포인터를 얻어온거 같던데요..

익명 사용자의 이미지

man index

#include
char *index(const char *s, int c);
문자열 s에서 최초에 문자 c가 나타난 위치의 포인터를 반환
char *riindex(const char *s, int c);
문자열 s에서 최후에 문자 c가 나타난 위치의 포인터를 반환