C言語でファイルの拡張子を取得する方法
文字列操作関数を使用して C 言語でファイル拡張子を取得できます。例を次に示します。
#include <stdio.h>
#include <string.h>
int main() {
char filename[100] = "example.txt";
char *extension;
// 获取文件扩展名
extension = strchr(filename, '.');
if (extension != NULL) {
printf("文件扩展名是:%s\n", extension+1);
} else {
printf("该文件没有扩展名\n");
}
return 0;
}
上記のコードでは、まず文字列filenameを定義し、ファイル名と拡張子を含んでいます。次に、strchr関数を使い文字列内で特定の文字、ここでは’.’を検索し、一致した文字列の先頭へのポインタを返します。拡張子が見つかれば、そのポインタを拡張子を示す変数extensionに代入し、printf関数を使い拡張子を出力します。拡張子が見つからなければ、extensionはNULLとなり、その旨を出力します。
このコードではファイル名に「.」が1つだけあると仮定しており、そのため拡張子として取得するのは最後の「.」以降の文字列のみが正しいことになります。ファイル名に「.」が複数ある、ないしは「.」がない場合は、追加の処理を行う必要があります。