配列を関数に渡す
・基本は文字列を関数に渡す場合と一緒
−ポインタで受け取る
−配列として受け取る
・関数側では配列の長さはわからない
[解決策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]
~~~~~~~