文字列処理関数とは
 ・文字列に対する処理を行う関数である
  文字列の複写、結合、比較、検索・・・
 ・文字列に対する処理は全て関数で行う
  −文字(char)型変数の配列として表現しているため
    単純な処理にも関数の助けが必要
 ・string.hをインクルードする必要がある

代表的な文字列処理関数
	関数		機能
	strcpy()	文字列を複写する
	strcat()	文字列を結合する
	strcmp()	文字列を比較する
	strlen()	文字列の長さを求める

ファイルとは
 ・補助記憶装置にプログラムやデータを記憶(保存)する単位のこと
	テキストファイル	表示可能な文字だけで構成されているファイル
	バイナリファイル	何でもありのファイル

ファイルの処理を行うには
・ファイルの処理(ファイルの読み書き)を行うには標準関数を使用する
・『ファイルポインタ』と呼ばれるポインタ変数を
	利用しいてファイルの情報を管理する
−ファイルポインタはfopen()関数で取得する
−ほとんどのファイル処理関数で使用する
−ただし、ファイルポインタの中身については知る必要はない

ファイルの処理を行う手順
	 ____________________
	[ファイルを開く(Open)]
	 ~~~~~~~~~~~~~~~~~~~~
			   ↓
  __________________________________
[[ファイルの読み書き(Read and Write)]]
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   ↓
	 _______________________
	[ファイルを閉じる(close)]
	 ~~~~~~~~~~~~~~~~~~~~~~~

ファイルのオープンとクローズ
		オープン			クローズ
--------------------------------------------------
関数	fopen()				fclose()
備考	適切なアクセス		使用後のファイルは
		モードを設定する	必ずクローズする
注意	オープンに失敗した	クローズ後のファイル
		場合のエラー処理は	ポインタは無効となる
		必須である

fopen()の使い方
機能		ファイルをオープン
ヘッダファイル	stdio.h
プロトタイプ	FILE *fopen(const char *filename, const char *mode);
引数		filename	ファイル名
			mode		アクセスモード
戻り値		オープンしたファイルへのポインタ
			エラーが発生した場合はNULL

ファイルのアクセスモード
				テキストモード	バイナリモード
-------------------------------------------------
読み込みモード		  "r"			 "rb"     
書き込みモード		  "w"			 "wb"     
追加モード			  "a"			 "ab"     

アクセスモードの違い
			   |入出力 |指定したファイルが
			   |	   |存在する	  |	存在しない
---------------------------------------------------
読み込みモード |入力   |OK			  |	エラー
               |       |              |
書き込みモード |出力   |既存のファイル|	新規作成
			   |	   |を破壊        |
追加モード	   |出力   |既存のファイル|	新規作成
			   |	   |に追記        |            

fclose()の使い方
機能		ストリーム(ファイル)をクローズ
ヘッダファイル	stdio.h
プロトタイプ	int fclose(FILE *stream)
引数		stream		FILE構造体へのポインタ
戻り値		クローズに成功すると0
			エラーが発生した場合はEOF

ファイルの一行入出力
		入力				出力             
----------------------------------------------
関数	fgets()				fputs()
モード	読み込みモード(r)	書き込みモード(w)
							追加モード(a)
備考	gets()と似ているが	puts()と似ているが
		改行文字も読み込ま	自動的には改行しない
		れる
  ※通常はテキストファイルに対して使用する

fgets()の使い方
機能		ストリーム(ファイル)から文字列を読み込む
ヘッダファイル	stdio.h
プロトタイプ	char *fgets(char *string, int n, FILE *stream);
引数		string		データの格納場所
			n			格納する場所の大きさ
			stream		FILE構造体へのポインタ
戻り値		成功すると引数が与えたstring
			ファイルの終端かエラーの場合はNULL

fputs()の使い方
機能		ストリーム(ファイル)に文字列を書き込む
ヘッダファイル	stdio.h
プロトタイプ	char *fputs(const char *string, FILE *stream);
引数		string		書き込み文字列
			stream		FILE構造体へのポインタ
戻り値		成功すると負でない値
			エラーが発生した場合はEOF

sizeof()演算子
 ・sizeof()は関数ではなく演算子である
 ・sizeof()演算子は次の情報を調べることができる
  −指定したデータ型の使用する領域のサイズ
  −指定した変数が使用している領域のサイズ

sizeof()演算子の使用例
・データ型が使用する領域のサイズを調べる
  sizeof(データ型名)
  	ex. sizeof(int), sizeof(char *),.....
変数が使用している領域のサイズを調べる
  sizeof(変数名)

複数のファイルを同時に扱うには
・ファイルポインタを複数使用する
・fopen()で1つずつファイルをオープンする
 −それぞれに対してエラー処理を行う
・使用後はfclose()でファイルをクローズする
 −最終的にはオープンしたすべてのファイルをクローズする
−クローズする順番は特にない