【C言語】ファイル名から拡張子を削除する方法

この記事では、C言語を使用してファイル名から拡張子を削除する方法を紹介します。

具体的には、文字列操作関数やポインタ操作を使用して、簡単に拡張子を削除する方法を解説します。

目次から探す

ファイル名から拡張子を削除する方法

ファイル名から拡張子を削除する方法について説明します。

この記事では、C言語を使用して、2つの方法を紹介します。

方法1: 文字列操作関数を使用する方法

この方法では、文字列操作関数を使用して、ファイル名から拡張子を削除します。

具体的な手順は以下の通りです。

  1. ファイル名を格納する文字列変数を宣言します。
  2. 文字列操作関数を使用して、ファイル名から最後のピリオド(.)の位置を検索します。
  3. 最後のピリオドの位置を使用して、ファイル名の拡張子を削除します。

以下に、具体的なコード例を示します。


#include <stdio.h>
#include <string.h>
int main() {
    char filename[100] = "sample.txt";
    char *dot;
    dot = strrchr(filename, '.'); // 最後のピリオドの位置を検索
    if (dot != NULL) {
        *dot = '\0'; // ピリオド以降を削除
    }
    printf("拡張子を削除したファイル名: %s\n", filename);
    return 0;
}

上記のコードでは、strrchr関数を使用して、最後のピリオドの位置を検索しています。

その後、*dotを使用して、ピリオド以降の文字列を削除しています。

最後に、削除後のファイル名を出力しています。

実行結果は以下の通りです。

拡張子を削除したファイル名: sample

方法2: ポインタ操作を使用する方法

この方法では、ポインタ操作を使用して、ファイル名から拡張子を削除します。

具体的な手順は以下の通りです。

  1. ファイル名を格納する文字列変数を宣言します。
  2. ポインタ操作を使用して、ファイル名の最後のピリオド(.)を検索します。
  3. ポインタ操作を使用して、最後のピリオド以降の文字列を削除します。

以下に、具体的なコード例を示します。


#include <stdio.h>
int main() {
    char filename[100] = "sample.txt";
    char *dot = filename;
    while (*dot != '\0') {
        if (*dot == '.') {
            *dot = '\0'; // ピリオド以降を削除
            break;
        }
        dot++;
    }
    printf("拡張子を削除したファイル名: %s\n", filename);
    return 0;
}

上記のコードでは、dotポインタを使用して、ファイル名の最後のピリオドを検索しています。

その後、*dotを使用して、ピリオド以降の文字列を削除しています。

最後に、削除後のファイル名を出力しています。

実行結果は以下の通りです。

拡張子を削除したファイル名: sample

以上が、ファイル名から拡張子を削除する方法についての説明です。

どちらの方法も、C言語の基本的な機能を使用していますので、ぜひ参考にしてみてください。

目次から探す