#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * find_dot();
char * find_end();
int main(int argc, char * argv[]){
char *file_extension[10];
int i;
for(i = 1; i < argc; i++){
//if an option
if(argv[i][0] == '-'){
switch(argv[i][0]){
default:;
}
//otherwise, should be the file
}else{
char *dot_location_ptr;
char *end_location_ptr;
char *filename_ptr = argv[i];
dot_location_ptr = find_dot(filename_ptr);
end_location_ptr = find_end(filename_ptr);
memcpy(file_extension, dot_location_ptr, end_location_ptr - dot_location_ptr);
find_dot は「.」へのポインターを返します。引数で strrchr を使用すると、find_end は引数の '\0' へのポインターを返します。
コンパイルはできますが、セグメンテーション違反が発生します。私がやろうとしているのは、ファイル拡張子を文字列としてキャプチャし、その拡張子を他の文字列と比較することだけです。