C言語 putcharの使い方

この記事のポイント

  • putchar関数の基本的な仕組みと使用目的
  • 文字と数値の相互変換における活用方法
  • 効率的な文字列出力テクニック
  • 特殊文字とエスケープシーケンスの出力
  • パフォーマンスを意識した出力方法

目次

putchar関数とは?

C言語のputchar関数は、標準出力(通常は画面)に1文字を出力する目的で使用する基本関数です。単一の文字を効率的に出力するために設計された関数ともいえるでしょう。putchar関数は、stdio.hヘッダーファイルで定義されています。

putchar関数の主な特徴は、シンプルさと処理速度にあります。プログラム内部の動きは、「1文字を書き込む(出力する)」点で、putc(character, stdout)とよく似ているでしょう。この関数を繰り返し使うことで、さまざまなテキストパターンの出力が可能となります。

また、putchar関数には、バッファリングされた出力を行う機能もあります。この機能による実際の出力は、バッファがいっぱいになるか、改行文字が出力されたとき、あるいはfflushが呼び出されたときに行われます。

putchar関数は、printf関数と比べると限定的な使い方をする関数です。しかし、単純な文字出力においては効率性が高い選択肢であり、リソース消費が少ない利点もあります。特に繰り返し文字を出力する場合や、組み込みシステムなどのリソースが限られた環境での使用に適しているでしょう。

【関連】
C言語をもっと詳しく学ぶならpaizaラーニング

基本構文

putchar関数の基本構文は、以下のようにとてもシンプルです。

#include <stdio.h> int main(void) { int ch; ch = 'A'; putchar(ch); // 文字'A'を出力 return 0; }

putchar関数は引数としてint型の値を取り、出力に成功した場合はその文字を返し、エラーが発生した場合は、EOF(通常は-1)を返す形になります。

ただし通常では、実際に渡す値は、文字('A'など)または文字に対応するASCII値(例えば65は'A')となります。

putchar('A'); // 文字リテラルを直接使用 putchar(65); // ASCII値による出力('A'と同じ) putchar('\n'); // 改行文字の出力

実用例

putchar関数をプログラム内の必要な場面で活用するためには、自分のプログラム内での実装や試行錯誤のなかで、適切な構文の書き方などを身につけることが大切です。

このセクションでは、さまざまな実用例とコードパターンを示しながら、putchar関数の基本的な使い方と出力例などを紹介していきます。

基本的な文字出力

単一の文字を出力する最も基本的なコードパターンです。以下では、「リテラル文字を直接指定する方法」と、「変数に格納した文字を出力する方法」の両方を示しています。簡潔ながらも、putcharの本質的な機能を確認できるコード例でしょう。

#include <stdio.h> int main(void) { putchar('H'); putchar('i'); putchar('!'); putchar('\n'); return 0; }

出力例:

Hi!

数値を文字として出力

数値を対応する文字に変換して出力するコードパターンです。数値をASCII文字として出力する際には、数字に'0'を加算するだけでOKです。以下のコードは、数値を文字列に変換する簡易的な方法として使用できるでしょう。

#include <stdio.h> int main(void) { int num; num = 5; putchar('0' + num); putchar('\n'); return 0; }

出力例:

5

文字列の出力

putchar関数を使って、文字列を出力するコードパターンです。文字列とは、プログラムの内部的にいえば「文字の配列」です。文字の配列であれば、配列を走査しながら各文字をputchar関数で出力できます。以下のコード例は、より細かい制御が必要な場合に、先ほども紹介したputs関数やprintf関数の代わりに使えるテクニックになります。

#include <stdio.h> int main(void) { char *message; int i; message = "Hello, World!"; for (i = 0; message[i] != '\0'; i++) { putchar(message[i]); } putchar('\n'); return 0; }

出力例:

Hello, World!

書式化出力

数値を10進数表記で出力する簡易的なコードパターンです。各桁を順に計算したうえで、文字に変換して出力します。これはprintf関数の%dに相当する機能を、putchar関数を使って自前で実装する例として参考になるでしょう。

#include <stdio.h> int main(void) { int num; char buffer[20]; int i; int temp; num = 12345; i = 0; temp = num; do { buffer[i++] = '0' + temp % 10; } while ((temp /= 10) > 0); while (i > 0) { putchar(buffer[--i]); } putchar('\n'); return 0; }

出力:

12345

エスケープシーケンスの出力

putchar関数を使うと、制御文字や特殊文字も出力可能です。これらの文字は、エスケープシーケンスと呼ばれており、出力画面上に表示されなかったり、特別な効果を持ったりすることがあります。しかし、テキスト処理やコンソールアプリケーションでは、よく利用されるものでしょう。

#include <stdio.h> int main(void) { putchar('B'); putchar('e'); putchar('e'); putchar('p'); putchar(':'); putchar(' '); putchar('\a'); // 警告音 putchar('\n'); return 0; }

出力例:

Beep:

ASCII表の生成

putcharを使って、ASCII表の一部を生成するコードパターンです。ループを使い、連続したASCII値を文字として出力することで、文字セットを可視化できます。以下のコードは、文字エンコーディングの学習や、デバッグツールとして役立つでしょう。

#include <stdio.h> int main(void) { int i; for (i = 33; i <= 126; i++) { putchar(i); putchar(' '); if ((i - 32) % 10 == 0) { putchar('\n'); } } return 0; }

出力例:

! " # $ % & ' ( ) *
+ , - . / 0 1 2 3 4
...(以下省略)

まとめ

C言語のputchar関数は、文字出力時の効率化に欠かせない関数です。1文字ずつ出力する基本機能を持っており、ほかの関数と組み合わせることでさまざまな出力処理が実現できます。

この記事では、putchar関数の基本的な使い方から、文字列出力、数値表示、特殊文字の出力、アニメーション効果まで、幅広い実用例を紹介しました。

putchar関数の主な利点は、構文のシンプルさと効率性です。

printf関数のような高機能な関数と比べると制限はあるものの、基本的な出力処理ではより少ないオーバーヘッドで動作できます。特に繰り返し処理や大量出力を行う場合や、メモリ・リソースが限られた環境では、putchar関数を選択することでパフォーマンス向上につながります。

基本的な入出力関数の理解は、C言語プログラミングをマスターするうえで欠かせないものです。C言語初心者の方は、putcharというとてもシンプルな関数から、入出力テクニックの理解を深めてみてください。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. C言語のリファレンス記事一覧
  4. C言語 putcharの使い方