5.6 C言語固有のコーディング例

C言語にはCOBOL言語のような編集項目(PIC Z,9),文字項目(PIC X)という概念がないため,数を扱う場合,そのデータが文字(数字)か,または数値かをユーザが意識してアプリケーションプログラムを作成する必要があります。また,コンマを付けるなどの出力数字編集もアプリケーションプログラムで実行する必要があります。ここでは,C言語でアプリケーションプログラムを作成する場合に,注意が必要な固有のコーディングについて説明します。

<この節の構成>
(1) エリアの一括クリアには,memsetを使う
(2) データの一括コピーにはmemcpyを使う
(3) 配列データ,またはメモリ領域の比較にはmemcmpを使う
(4) 出力論理マップ中のカーソル位置(行,列)のクリアには(00)16を使う
(5) 数字から数値への変換には文字列変換関数atol,またはatofを使う
(6) 数値から数字への変換には書式付き出力関数sprintfを使う

(1) エリアの一括クリアには,memsetを使う

(例)
出力項目を空白でクリアする。なお,エリアサイズを求めるには,sizeof演算子を使用する。
[図データ]

(2) データの一括コピーにはmemcpyを使う

(例)
項目属性に「PROT」を設定する。
[図データ]

(3) 配列データ,またはメモリ領域の比較にはmemcmpを使う

(例)
INCコードが「PF01」であるかどうかを判定する。
[図データ]

(4) 出力論理マップ中のカーソル位置(行,列)のクリアには(00)16を使う

(例)
出力カーソルの行列位置エリアをクリアする。
[図データ]

(5) 数字から数値への変換には文字列変換関数atol,またはatofを使う

(例)
入力論理マップmapli中の項目(char MAP003_SU1_I[5])に設定されている数字データを数値データに変換する。
[図データ]

(6) 数値から数字への変換には書式付き出力関数sprintfを使う

(例)
数値を文字に変換して出力論理マップの項目(char MAP003_GOUKEI_O[15];)に格納し,計算結果などを画面に表示する。
[図データ]