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つだけあると仮定しており、そのため拡張子として取得するのは最後の「.」以降の文字列のみが正しいことになります。ファイル名に「.」が複数ある、ないしは「.」がない場合は、追加の処理を行う必要があります。

bannerAds