【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. 練習問題
以下の課題に挑戦して、標準ライブラリ関数の使い方を実践的に学びましょう。
- 文字列をコピーする
strcpy
関数を使って、入力された文字列を別の変数に保存してください。 - 数学関数
pow
を使って、任意の数のべき乗を計算するプログラムを作成してください。 - ファイルに複数行を書き込み、その内容を読み取って表示するプログラムを作成してください。
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言語の標準ライブラリ関数を活用することで、複雑なタスクを効率よく実現できます。次回は、カスタム関数の設計と標準ライブラリ関数の組み合わせについて学びます。