C言語 - ファイルの拡張子を取得する
C言語 - ファイルの拡張子を取得する
ファイルを読み取るとき、拡張子を条件にすることも多い。
拡張子を取得する GetExtensionName のような関数が、C言語の標準関数にないだろうかと思ったが、やっぱりなかった。
自作するしかなさそうである。
拡張子を取得するには、ファイル名に現れる最後のドット(.
)の位置が分かれば良い。
最後のドットの位置からファイル名の末尾までが拡張子だ。
文字列の最後から特定の文字を検索するには strrchr
関数を使う。
strrchr
関数は引数の文字列の最後から指定された文字を検索する。
文字を発見した場合はそのポインターを返すし、見つけれらなかった場合は NULL ポインターを返す。
strrchr
関数は以下のように使う。
char *extension = strrchr("path/to/file.txt", '.');
次のプログラムは、ファイル名の拡張子に応じたメッセージを出力する。
- 拡張子が取得できない場合は「拡張子なしのファイル」
- 拡張子が “.txt” の場合は「テキストファイル」
- 拡張子が “.txt” 以外の場合は「テキストファイル以外(拡張子:%s)」
%s には取得した拡張子が出る。
たとえば file.jpg なら「テキストファイル以外(拡張子:.jpg)」と表示される。
#include
#include
int main(int argc, char *argv[]) {
if (argc == 1) {
printf("ファイル名指定なし\n");
return 0;
}
/* 拡張子を取得してメッセージを表示 */
/* コマンドライン引数にはファイル名が指定されると想定して */
char *extension = strrchr(argv[1], '.');
if ( extension == NULL ) {
printf("拡張子なしのファイル\n");
} else if ( strcmp(extension, ".txt") == 0 ) {
printf("テキストファイル\n");
} else {
printf("テキストファイル以外(拡張子:%s)\n", extension);
}
}
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。
ことりと さんにチップを送りました
チップをありがとうございます。
メッセージは管理画面から確認できます。
酒とアクアリウムが最近の楽しみ。
このクリエイターの人気記事
最新記事
TOPVIEWの人気記事
おすすめの記事
この記事にコメントをしてみませんか?