未来のキャリアを変えるプログラミングスクール『TECH BOOST』AI、IoT、ブロックチェーンなど最新技術も学べる!

【C言語超入門(第38回)】標準関数ライブラリ関数を覚えよう

Pocket

C言語には入出力や文字列処理といった、一般的に使用されるであろう機能がありません。

なぜなら、言語処理のコア部分は必要最小限にして、
プログラミングをしていく上で必要なものだけを後から付け加えていく、というC言語の思想があるからです。

入出力や文字列処理といった処理は、すべて標準ライブラリ関数として提供されています。

C言語の本体だけではできることが限られている(そぎ落とされている)ため、
C言語でプログラミングをするにあたっては、標準ライブラリ関数を使いこなせるか否かが、プログラミング効率に大きく影響します。

ただ、標準ライブラリ関数は多数あることから、すべてを覚えることは現実的ではありません。

頻繁に使用する標準ライブラリ関数だけは覚えて、後は必要に応じて資料を参照しながら関数を利用すれば十分です。

そこで今回のC言語超入門では、標準ライブラリ関数のうち、頻繁に利用するであろう関数について紹介します。

キーボードやディスプレーとの入出力を行う関数

キーボードから文字を入力したり、ディスプレーに文字を出力したりする標準ライブラリ関数として以下があります。

・ getchar() ・・・ キーボードから1文字入力する
・ putchar() ・・・ ディスプレーに1文字出力する
・ gets() ・・・ キーボードから文字列を入力する
・ puts() ・・・ ディスプレーに文字列を出力する
・ scanf() ・・・ キーボードから書式付きで入力する
・ printf() ・・・ ディスプレーに書式付きで出力する

なお、これらの関数については、以下で詳細に解説しておりますので、ぜひご参照くださいませ。

・【C言語超入門(第26回)】入出力の方法を学ぼう(1文字の入出力編)
・【C言語超入門(第27回)】入出力の方法を学ぼう(文字列の入出力編)
・【C言語超入門(第28回)】入出力の方法を学ぼう(数値の入出力編)
・【C言語超入門(第29回)】重要関数printf、scanfの使い方を身に付けよう

文字を処理するための関数

C言語のプログラミングをしていますと、ある文字が英字なのか、はたまた数字なのかを判定したいことがあります。

また、英小文字を大文字に、英大文字を小文字に変換したりすることも、よくあることです。

C言語には、こういった文字処理を行う標準ライブラリ関数が用意されています。

代表的な文字を処理するための関数を、いくつか紹介します。

・ isalpha(x) ・・・ 文字xが英文字(A〜Z、a〜z)なら真を返す
・ isdigit(x) ・・・ 文字xが数字(0〜9)なら真を返す
・ tolower(x) ・・・ 文字xが大英文字(A〜Z)なら、小英文字(a〜z)を返す
・ tolower(x) ・・・ 文字xが小英文字(a〜z)なら、大英文字(A〜Z)を返す

文字列を処理するための関数

C言語では、文字列のコピーや比較などについても、言語機能としては持ち合わせておらず、すべて標準ライブラリ関数として提供されます。

主な文字列処理関数は次のとおりです。

・ strlen(x) ・・・ 文字列xの文字数を返す
・ strcpy(x, y) ・・・ 文字列aに文字列yをコピーする
・ strncpy(x, y, z) ・・・ 文字列aに文字列yの先頭からz文字分をコピーする
・ strcat(x, y) ・・・ 文字列xの後ろに文字列yを付け加える
・ strncat(x, y) ・・・ 文字列xの後ろに文字列y の先頭からz文字分を付け加える
・ strcmp(x, y) ・・・ 文字列xと文字列yを比較する(x==yならゼロ、y>yなら正、x<yなら負)
・ strncmp(x, y, z) ・・・ 文字列xと文字列yを先頭からz文字分を比較する(x==yならゼロ、y>yなら正、x<yなら負)

数学に関する関数

C言語の標準ライブラリ関数には、たくさんの数学に関する関数が用意されています。

・ ceil(x) ・・・ 数値xを切り上げた値を返す
・ floor(x) ・・・ 数値xを切り下げた値を返す
・ pow(x, y) ・・・ 数値xのy乗した値を返す
・ sqrt(x) ・・・ 数値xの平方根を返す

なお、数学に関する標準ライブラリは、一部の例外を除き、引数も戻り値もdouble型であることに注意してください。

C言語超入門の第38回まとめ

さて今回のC言語超入門では、標準ライブラリ関数のうち、頻繁に利用するであろう関数について紹介しました。

最後にもう一度、標準ライブラリ関数のポイントについて振り返って今回のC言語超入門を締めくくりたいと思います。

・ C言語には入出力や文字列処理といった一般的に使用されるであろう機能はなく、標準ライブラリ関数として提供されている
・ 標準ライブラリ関数を使いこなせるか否かが、プログラミング効率に大きく影響する
・ とは言え、標準ライブラリ関数は多数あるため、すべて覚える必要はなく、頻繁に使用する関数だけ覚えておくだけでよい

ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る