C言語

【C言語】第5章第6回:ライブラリ関数の使い方(標準ライブラリ)

C言語の標準ライブラリは、日常的なタスクを簡単に実現するための便利な関数を提供します。この章では、標準ライブラリ関数の基本的な使い方を学びます。

1. 標準ライブラリ関数とは?

標準ライブラリ関数は、C言語に組み込まれている関数群で、以下のような機能を提供します:

  • 文字列操作(strlen, strcpy, strcmpなど)
  • 数学計算(sqrt, pow, fabsなど)
  • 入出力操作(printf, scanf, fopenなど)
  • メモリ管理(malloc, freeなど)

これらの関数を利用するには、対応するヘッダーファイルをインクルードする必要があります。

2. ライブラリ関数の基本的な使い方

2.1 文字列操作関数

文字列操作に使用する関数の例を示します。

例:文字列の長さを取得するstrlen

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    size_t length = strlen(str); // 文字列の長さを取得
    printf("Length of the string: %zu\n", length);
    return 0;
}

解説:

  • strlen関数は、文字列の長さを返します(NULL文字を含まない)。
  • size_t型を使って結果を受け取ります。
  • ヘッダーファイルstring.hをインクルードする必要があります。

2.2 数学関数

数学関数の例を示します。

例:平方根を計算するsqrt

#include <stdio.h>
#include <math.h>

int main() {
    double number = 25.0;
    double result = sqrt(number); // 平方根を計算
    printf("Square root of %.2f is %.2f\n", number, result);
    return 0;
}

解説:

  • sqrt関数は、指定された数値の平方根を計算します。
  • ヘッダーファイルmath.hをインクルードします。
  • 結果はdouble型として返されます。

3. 応用例:ファイル操作関数

3.1 ファイルの読み書き

例:ファイルへの書き込みと読み込み

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w"); // ファイルを開く
    if (file == NULL) {
        printf("Error opening file!\n");
        return 1;
    }

    fprintf(file, "Hello, File!\n"); // ファイルに書き込み
    fclose(file); // ファイルを閉じる

    file = fopen("example.txt", "r"); // ファイルを再度開く
    if (file == NULL) {
        printf("Error opening file!\n");
        return 1;
    }

    char buffer[100];
    fgets(buffer, 100, file); // ファイルから読み込み
    printf("Read from file: %s", buffer);
    fclose(file);
    return 0;
}

解説:

  • fopen関数でファイルを開きます。
  • fprintf関数でデータを書き込みます。
  • fgets関数でデータを読み取ります。
  • 最後にfclose関数でファイルを閉じます。

4. 練習問題

以下の課題に挑戦して、標準ライブラリ関数の使い方を実践的に学びましょう。

  1. 文字列をコピーするstrcpy関数を使って、入力された文字列を別の変数に保存してください。
  2. 数学関数powを使って、任意の数のべき乗を計算するプログラムを作成してください。
  3. ファイルに複数行を書き込み、その内容を読み取って表示するプログラムを作成してください。

5. 練習問題の解答と解説

問1の解答

#include <stdio.h>
#include <string.h>

int main() {
    char source[100], destination[100];
    printf("Enter a string: ");
    fgets(source, 100, stdin); // 入力を受け取る

    strcpy(destination, source); // 文字列をコピー
    printf("Copied string: %s", destination);
    return 0;
}

解説:strcpy関数は、source文字列をdestinationにコピーします。

6. まとめ

C言語の標準ライブラリ関数を活用することで、複雑なタスクを効率よく実現できます。次回は、カスタム関数の設計と標準ライブラリ関数の組み合わせについて学びます。