配列を関数に渡す
 ・基本は文字列を関数に渡す場合と一緒
  −ポインタで受け取る
  −配列として受け取る
 ・関数側では配列の長さはわからない
  [解決策1]配列の長さを引数で渡す
  [解決策2]配列の終端を示すマークを格納しておく

配列を受け取る関数
 [宣言] 引数をポインタ型もしくは配列にする
		 void PrintArray(int *piArray);
		 void PrintArray(int piArray[]);
 [使用] 配列の先頭アドレスへポインタを渡す
		 PrintArray(piArray);
 [備考[ 配列の終端を関数に知らせること

main関数の真の姿

       void main(void){
今まで       ・・・       
	   }               

       int main(int argc, char **argv){
本来は      	     ・・・               
	   }                               

main関数
 ・コマンドライン引数を受け取れる
  −コマンドライン(コマンドプロンプト)で入力した内容のこと
 ・main関数に渡すことができるもの
  −引数の総画数
  −コマンドライン引数(文字列の配列)

main関数の引数とは
 ・main関数の引数の説明
  int main(int argc,char **argv);
  argc コマンドライン引数の数(最低は1)
  argv コマンドライン引数(文字列の配列)
 ・引数の別記述法
  −int main(int argc, char *argv[]);
   と記述することも可能

main関数の引数とは
 ・引数名
  −argcとargvを用いるのが慣例
 ・それぞれの引数の意味
  −agrc
 	引数の数(プログラム名そのものも含む)

main関数の引数とは
 ・それぞれの引数の意味
  -argv
	argv[0]		0番目(最初)の引数文字列
					(プログラム名)
	argv[1]		1番目の引数文字列(の先頭アドレス)
	argv[2]		2番目の引数文字列(の先頭アドレス)
	   :					:                      
						                           
						と言う形でデータが渡される
						
main関数の戻り値とは
 ・通常の関数の戻り値と意味的には同じ
  −return文で値を返す
  −通常はreturn 0;でかまわない
 ・戻り値はそのプログラムを実行したプロセス(プログラムの使用側)に返される
 ・戻り値が必要なければ戻り値の型をvoidで宣言しておけばよい

引数個数のチェック
・引数を用いるmain関数では引数の個数をチェックする
      argv[0]にはプログラム名
      |     argv[1]="100"
      |     |   argv[2]="200"
      |     |   |   
> cins0811 100 200  
  ~~~~~~~~~~~~~~~~  
       argc = 3     

引数個数のチェック
 ・argcの値を用いてチェックする
  −制御文(条件分岐)を記述する
 ・exitで中止する
  −異常終了の時は1以上の値を返すのが慣例
		・exit(1); 異常終了の記述法
		・exit(0); 異常ではないけどプログラムを途中終了される記方法

引数個数のチェック
 ・記号定数を用いる
  −exit(EXIT_FAILURE);  exit(1)に等しい
  −exit(EXIT_SUCCESS);  exit(0)に等しい

※使用するにはstdlib.hをインクルードする必要がある

関数作成時の留意事項
 ・関数は基本的に独立される
 ・何回も行う処理は関数にする
  −同じ処理を何度も書かない
 ・機能的に分割できれば関数にする

C言語研修(基礎編)
〜文字と文字列の処理〜

文字処理関数とは
 ・文字に対する処理を行う関数である
  −文字の種類を調べる文字判定関数(is〜)
  −文字を変換する文字変換関数(to〜)
 ・基本的に1バイト文字を対象にしている
  −2バイト文字を対象にした関数もある
 ・ctype.hをインクルードする必要がある

文字判定関数とは

 説明 関数名がisで始まる関数群のこと
 機能 文字の種類を調べることができる
 動作 テスト条件を満たす場合
          → 0 以外 の値を返す
      テスト条件を満たさない場合
          → 0 を返す

代表的な文字判定関数
関数		テスト条件
isalnum()	英数字(英語と数字)
isalpha()	英字('A'〜'Z', 'a'〜'z')
isdigit()	数字('0'〜'9')
islower()	英小文字('a'〜'z')
isupper()	英大文字('A'〜'Z')

文字変換関数とは
 説明 関数名が to で始まる関数群のこと
 機能 文字を変換することができる
 動作 変換できる場合
 	      →変換後に文字を返す
 	  変換できない場合
	      →そのままの文字を返す

代表的な文字変換関数

関数
tolower()	英大文字を英小文字に変換する
			それ以外の文字は変換しない
toupper()	英小文字を英大文字に変換する
			それ以外の文字は変換しない

文字変換関数のイメージ

●tolower()の場合
	      _______       
	[A]→[tolower]→[a] 
	      ~~~~~~~       
	      _______       
	[1]→[tolower]→[1] 
	      ~~~~~~~