関数名 | プロトタイプ | ヘッダファイル | 説明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
abs | int abs(int n); | stdlib.h 又は math.h | 引数の絶対値を返す。実数版は double fabs(double x); である。 【戻り値】引数の絶対値 | ||||||||||||
asctime | char *asctime(const struct tm *tp); | time.h | tp が指すtm構造体に格納されている時刻を文字列に変換して返却する。 例: Thu Nov 19 14:46:41 2015。文字列末尾に改行コード'\n'が含まれる。 【戻り値】変換文字列を指すポインタ | ||||||||||||
atof | double atof(const char *str); | stdlib.h | 文字列で表現された数値をdouble型の数値に変換する。 変換不能なアルファベットなどの文字列の場合は0を返すが、数値が先頭にあればその値を返す。 【戻り値】 double型に変換した数値。変換不能文字は0を返す。 (数値の0であったか、変換不能で0が返されたのか区別できない。) | ||||||||||||
atoi | int atoi(const char *str); | stdlib.h | 文字列で表現された数値をint型の数値に変換する。 変換不能なアルファベットなどの文字列の場合は0を返すが、数値が先頭にあればその値を返す。 【戻り値】 int型に変換した数値。変換不能文字は0を返す。(数値の0であったか、変換不能で0が返されたのか区別できない。) | ||||||||||||
atol | long atol(const char *str); | stdlib.h | 文字列で表現された数値をlong型の数値に変換する。 変換不能なアルファベットなどの文字列の場合は0を返すが、数値が先頭にあればその値を返す。 【戻り値】 long型に変換した数値。変換不能文字は0を返す。(数値の0であったか、変換不能で0が返されたのか区別できない。) | ||||||||||||
bsearch | void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); | stdlib.h | 整列 (sort) 済みの配列から値を探索する。 bsearch 関数は先頭要素を base が指すオブジェクトの配列 (要素数が nmemb 個,各要素の大きさが size である配列) から、 key が指すオブジェクトに一致する要素を探索する。 base が指すオブジェクト配列は昇順に整列されている必要がある。 【戻り値】一致する要素が見つかったとき: 配列中の一致する要素へのポインタ、 一致する要素が見つからなかったとき: NULL | ||||||||||||
calloc | void *calloc(size_t n, size_t size); | stdlib.h |
ヒープメモリから size バイトのブロックを n個割り当てる。確保されたブロックは 0 クリアされている。 calloc関数で確保したメモリは、使用後、free関数で解放する。 【戻り値】 成功時: 確保したメモリブロックを指すポインタ 失敗時: NULL(メモリ不足により指定サイズ分のメモリが確保できないとき) | ||||||||||||
clock | clock_t clock(void); | time.h |
プログラム実行開始からの経過時間(プロセッサ時間=プロセッサが動いた時間)を返却する。経過時間の精度は処理系に依存する。 clock関数を2回呼び出し、経過時間の差を求めることにより、処理時間を算出することができる。 経過時間を秒で表現するには、CLOCKS_PER_SECで割ればよい。 MinGW GCCの time.h では typedef long clock_t; と定義されている。 32ビットCコンパイラでは long型はint型と同じく32ビットであるから、 clock_t は int型と同じ32ビット整数である。 処理系によっては clock_t は64ビット整数となる。 【戻り値】 成功時: プログラム実行開始からの経過時間(プロセッサ時間) 失敗時: (clock_t)-1 | ||||||||||||
ceil | double ceil(double ceil); | math.h |
小数点以下を切り上げる。
【戻り値】小数点以下を切り上げした値 | ||||||||||||
cos | double cos(double x); | math.h |
角度(単位:ラジアン) x の余弦 (cos) を計算し,結果を double 型で返す。
【戻り値】余弦値 | ||||||||||||
ctime | char *ctime(const time_t *t); | time.h |
time関数で取得した t(グリニッチ標準時(GMT)で1970/1/1 00:00:00 から現在までの経過秒数)を引数に、
「曜日 月 日 時:分:秒 年」の固定形式に変換された文字列(例: Thu Nov 19 14:46:41 2015)へのポインタを返す。
【戻り値】固定形式に変換された文字列へのポインタを返す。 | ||||||||||||
difftime | double difftime(time_t t1, time_t t2); | time.h |
二つの暦時間t1、t2の差をdouble型(単位:秒)で返す。
戻り値がdouble型であるが、引数は time_t(long型整数)のため、小数点以下の値は得られない。 短い時間間隔に対して、秒単位以下の精度を得たいときは clock関数を使用し、 長期間の時間差を計測するときに difftime関数を使う。 また、clock関数はプロセッサが実際に動いた時間を返すに対して、
difftimeはカレンダ上の経過秒数であるため、この意味での差異もある。
| ||||||||||||
exit | stdlib.h |
正常プログラム終了を引き起こす(呼び出し元に戻らない)。statusは親プロセスへ返す値である。main関数では return status; と同じである。
【戻り値】なし。 | |||||||||||||
exp | double exp(double x); | math.h |
自然対数の底(ネイピア数) e の x 乗(ex)を返す指数関数。e の値は,2.71828182845904・・・・・・・・・。(関連関数:pow, log)
【戻り値】自然対数の底(ネイピア数) e の x 乗 | ||||||||||||
fabs | double fabs(double x); | math.h | double型引数の絶対値をdouble型で返す。整数版は int abs(int n) である。 【戻り値】引数の絶対値 | ||||||||||||
feof | int feof(FILE *fp); | stdio.h |
ファイルが終わりに到達したか調べる。
| ||||||||||||
fclose | int fclose(FILE *stream); | stdio.h |
stream が指すファイルをクローズする。
ストリームに対してバッファリングされただけでまだ書き込まれていないデータはファイルに書き込む。
また,バッファリングされただけでまだ読み取られていないデータは破棄する。
| ||||||||||||
fgetc | int fgetc(FILE *stream); | stdio.h |
stream が指すストリームから 1 文字分文字を読み取る。
文字は unsigned char 型として取り込まれ、int 型に変換されて戻り値(0〜255)になる。
失敗した(ファイルの終わりに達した)ときは -1 が返される。
| ||||||||||||
fgetpos | int fgetpos(FILE *fp, fpos_t *ptr); | stdio.h |
現在のファイル位置を引数 ptr で指定された場所に格納する。
| ||||||||||||
fgets | char *fgets(char *s, int size, FILE *stream); | stdio.h | stream から最大で size - 1 個の文字を読み込み、 s が指すバッファに格納する。
読み込みは EOF または改行文字を読み込んだ後で停止する。 読み込まれた改行文字はバッファに格納される。
終端のヌルバイト ('\0') が一つバッファの中の最後の文字の後に書き込まれる。 【戻り値】成功すると s、失敗すると NULL を返す | ||||||||||||
floor | double floor(double ceil); | math.h |
小数点以下を切り捨てる。
【戻り値】小数点以下を切り捨てた値 | ||||||||||||
fopen | FILE *fopen(const char *filename, const char *mode); | stdio.h |
ファイル filename を モード mode でオープンし,そのファイルにストリーム (stream) を結び付ける。 引数 mode は文字列で指定する。 テキストファイルに対して、引数 mode に指定できるモードは以下の通り。
バイナリファイルに対してはそれぞれのモード引数を "rb", "wb", "ab" とする。 更新(読み取り及び書き込み)については、テキストファイルでは "r+", "w+", "a+" とし、
バイナリファイルでは "r+b", "w+b", "a+b" または "rb+", "wb+", "ab+" とする。
| ||||||||||||
fputs | int fputs(const char *str, FILE *fp); | stdio.h |
ファイルポインタfpに文字列strを出力する。改行コード(\n)は自動で出力しない。
【戻り値】成功すれば負では無い値を、エラーであれば -1 を返す。 | ||||||||||||
fread | size_t fread(void *buf, size_t size, size_t n, FILE *fp); | stdio.h |
ファイルfpからsizeバイトのデータをn個読み込み、bufに格納する。
ファイル位置指示子を読み込んだデータバイト分進める。
エラーが発生した場合にはファイル位置指示子の値は不定である。 【戻り値】成功時: 読み取った要素の個数 (バイト数ではない)、 ファイル終了時及びエラー時: nより小さな値 【プログラム事例】テキストファイルの一括読み込み | ||||||||||||
free | void free(void *ptr); | stdlib.h |
calloc関数、malloc関数、realloc関数で割り当てたメモリブロックを解放する。
【戻り値】なし | ||||||||||||
fscanf | int fscanf(FILE *fp, const char *format, ...); | stdio.h |
書式付き(空白やカンマ区切り)ファイルを読み込む。
【戻り値】成功すると読み込んだ項目数を返し、失敗すると -1 を返す。 【プログラム事例】CSV読み込み | ||||||||||||
fseek | int fseek(FILE *fp, long offset, int ptrname); | stdio.h |
ファイル位置を変更する。 ファイル位置の基準:SEEK_SET 先頭、SEEK_CUR 現在の位置、SEEK_END 終わり
| ||||||||||||
fsetpos | int fgetpos(FILE *fp, const fpos_t *ptr); | stdio.h |
ファイル位置を引数 ptr で指定された位置に変更する。
fgetpos関数である位置を覚えて置き、読み/書きを実行した後でその位置に戻すときに使用する。
| ||||||||||||
ftell | long ftell(FILE *stream); | stdio.h |
stream が指すストリーム (stream) の現在のファイル位置表示子の値を取得する。
バイナリストリームの場合は,その値はファイルの始めからの文字数に等しい。
【戻り値】現在のファイル位置表示子の値、失敗すると -1L を返す。 【プログラム事例】ftell/fseek | ||||||||||||
fwrite | size_t fwrite(const void *buf, size_t size, size_t n, FILE *fp); | stdio.h |
bufからファイルfpへsizeバイトのデータをn個書き込む。ファイル位置指示子を書き込んだデータバイト分進める。
| ||||||||||||
getc | int getc(FILE *stream); | stdio.h |
stream が指すストリームから 1 文字分文字を読み取る。 文字は unsigned char 型として取り込まれ、int 型に変換されて戻り値(0〜255)になる。 失敗した(ファイルの終わりに達した)ときは -1 が返される。 getc は基本的には fgetc と同じであるが、マクロで実装してもよいことになっているため、
stream が2回以上評価されるかも知れないため、副作用を伴う式では使えない。
| ||||||||||||
getchar | int getchar(void); | stdio.h |
標準入力 (standard input) から 1 文字を読み取る。
文字は unsigned char 型として取り込まれ、int 型に変換されて戻り値(0〜255)になる。
失敗した(ファイルの終わりに達した)ときは -1 が返される。
#include <stdio.h> void main() { int c; while ((c = getchar()) != EOF) { printf("%d\t", c); } } 実行例を下に示す。キー入力は「123いろは」+エンターキー。 ファイルの終わりは Ctrl+Z キー。 c:\sys>test.exe 123いろは 49 50 51 130 162 130 235 130 205 10 ^Z | ||||||||||||
gets | char *gets(char * s); | stdio.h |
標準入力 (standard input) から 1 行分(改行文字まで、またはファイルの終わりまで) 文字列を読み取り、 s が指す配列に格納する。配列に格納した文字の後に'\0' を書き込む。 sが示す配列のサイズを超える文字列が読み込まれるとバッファ・オーバランが起きるため、
使わない方がよい。C11では削除された。代りに fgets を使う。
但し、getsは改行文字をバッファに書き込まないが、fgetsは改行文字もバッファに書き込む。
gets、fgetsともストリームに改行文字は残らない。
| ||||||||||||
get timeofday | int gettimeofday(struct timeval *tv, struct timezone *tz); | sys/time.h |
紀元 (Epoch; 1970-01-01 00:00:00 (UTC)) からの経過時刻とタイムゾーンを取得する。
POSIX.1-2008 では gettimeofday() は廃止予定とされており、代わりに clock_gettime の使用が推奨されている [出典]。 Windows OS は gettimeofday 関数をサポートしていない。
Windowsで精度高い時刻を得るには GetSystemTime関数、GetSystemTimeAsFileTime関数を使用する。
| ||||||||||||
isalnum | int isalnum(int c); | ctype.h |
英字または数字であるかを調べる。 (isalpha(c) || isdigit(c)) と等価である。
【戻り値】文字 c が英字または数字であるとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
isalpha | int isalpha(int c); | ctype.h |
文字 c がアルファベット ('A'〜'Z', 'a'〜'z') なら 1 (真) を返す。
【戻り値】文字 c がアルファベットのとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
isascii | int isascii(int c); | ctype.h |
文字 c が、ASCII文字セットに合致する 7ビットの unsigned char であるかを調べる。
【戻り値】文字 c がASCII文字であるとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
isdigit | int isdigit(int c); | ctype.h |
文字 c が数字 ('0'〜'9') なら 1 (真) を返す。
【戻り値】文字 c が数字のとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
islower | int islower(int c); | ctype.h |
文字 c が小文字かどうかを調べる。
【戻り値】文字 c が小文字のとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
isupper | int isupper(int c); | ctype.h |
文字 c が大文字かどうかを調べる。
【戻り値】文字 c が大文字のとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
isxdigit | int isxdigit(int c); | ctype.h |
文字 c が 16進数での数字(0〜9、a〜f、A〜F)かどうかを調べる。
【戻り値】文字 c が16進数での数字のとき 1 (真)、そうでないとき 0 (偽)。 | ||||||||||||
localtime | struct tm *localtime(const time_t *t); | time.h |
time関数で取得した「グリニッチ標準時(GMT)で1970/1/1 00:00:00 から現在までの経過秒数」を、
地方標準時(日本時間)として構造体tmへ変換し、その構造体のアドレスを返す。
【戻り値】tm構造体へのポインタ | ||||||||||||
log | double log(double x); | math.h |
x の自然対数(logarithm)を返す。数学では loge(x) と書く。指数関数 exの逆関数である。
【戻り値】x の自然対数 | ||||||||||||
log10 | double log10(double x); | math.h |
x の常用対数(10を底とする対数)を返す。
【戻り値】x の常用対数(10を底とする対数) | ||||||||||||
malloc | void *malloc(size_t size); | stdlib.h |
ヒープメモリから size バイトの領域を割り当てる。確保された領域は 0 クリアされない。
malloc関数で確保したメモリは、使用後、free関数で解放する。
【戻り値】成功時: 確保したメモリ領域を指すポインタ、失敗時:NULL(メモリ不足により指定サイズ分のメモリが確保できないとき) | ||||||||||||
memcpy | void *memcpy(void *buf1, const void *buf2, size_t len); | string.h | buf2からbuf1へlenバイトをコピーする。
途中にヌル文字(\0)があってもlen文字数をコピーする。コピー後、末尾にヌル文字を自動で設定しない。
【戻り値】buf1 | ||||||||||||
memmove | void *memmove(void *buf1, const void *buf2, size_t len); | string.h | buf2 が指すオブジェクトから,buf1 が指すオブジェクトに len バイト分コピーする。 memcpy関数とは異なり、領域の重なりがあった場合も正しくコピーされる。 | ||||||||||||
memset | void *memset(void *buf, int ch, size_t n); | string.h | buf の先頭から n バイト分 ch をセットする。
buf を超えてセットした場合の動作は未定義である。
バイト単位のため、一般にint配列のセットには使用できないが、例えば ゼロクリアならば使える。
【戻り値】buf | ||||||||||||
mkdir | int mkdir(const char *pathname, mode_t mode); | sys/stat.h |
ディレクトリ(フォルダ)を作成する。
pathnameは作成するディレクトリをパス名で指定する。
modeはディレクトリのアクセス許可情報(パーミッション)を指定する。
この関数は、C言語のライブラリ関数(標準関数)ではないので、コンパイラにより、使えない場合がある。
【戻り値】成功時: 0、失敗時: -1 | ||||||||||||
mktime | time_t mktime(struct tm *ptm); | time.h |
ptm が指す構造体の時刻を、time関数が使う時刻と同じ形式の時刻に変換する。
構造体tmのメンバ値の一部が、適正な値ではない場合は、mktime関数内で調節される。
この機能により日付から曜日を求めたり、年内の通算日数を求めることができる。
| ||||||||||||
pow | double pow(double x, double y); | math.h |
x の y 乗(xy)を返す。 x を底あるいは基数、y を指数と呼ぶ。
【戻り値】x の y 乗 | ||||||||||||
putchar | int putchar(int c); | stdio.h |
標準出力(stdout)に文字 c を出力する。
【戻り値】成功時: 出力した文字、失敗時: EOF(-1) | ||||||||||||
puts | int puts(const char *s); | stdio.h |
標準出力(stdout)にsが指す文字列を書き込み、出力の最後に改行を追加する。終端の '\0' は出力しない。
【戻り値】成功時: 正の値、失敗時: EOF(-1) | ||||||||||||
qsort | void qsort(void *data, size_t cnt, size_t size, int (*func)(const void *, const void *)); | stdlib.h |
void *data:ソート対象データ size_t cnt:ソート対象データ件数 size_t size:ソート対象データ1件当りのサイズ int func:int型の比較関数(コールバック関数)。 引数1 < 引数2 のとき負、引数1 == 引数2 のとき 0、引数1 > 引数2 のとき正の整数を返す。 【戻り値】なし | ||||||||||||
rand | int rand(void); | stdlib.h |
0〜RAND_MAXまでの擬似乱数(ランダム数)を返す。
int型が 32ビット幅であっても、RAND_MAX は 15ビットの 0x7FFF(32767) であることが多い。
コンパイラの実装に依存するが、生成される疑似乱数の性質に問題があることが多いので、
高度な乱数を必要する場合には、このrand関数でよいかどうか、十分な吟味が必要である。
【戻り値】0〜RAND_MAXまでの整数である乱数を返す。 | ||||||||||||
realloc | void *realloc(void *ptr , size_t len); | stdlib.h |
lenで指定された大きさの領域を新たに確保してその先頭アドレスを返す。 mallocなどで確保された領域を、新たなサイズで再確保する関数である。 新たなサイズは、以前より大きくとも小さくとも構わない。 以前より大きなサイズを確保した場合、元の領域の内容はコピーされるが、 新たに増加した部分に関しては、その内容は不定である。 また、以前より小さな値を確保した場合、減少した箇所は当然ながら内容は破棄されるが、それ以外の箇所の内容はコピーされる。 確保した領域はfreeで解放しなければならないが、プログラム終了時であればOSが自動で解放する。
| ||||||||||||
remove | int remove(const char *filename); | stdio.h |
ファイルを削除する。
【戻り値】成功時:0、失敗時:0以外 | ||||||||||||
rename | int rename(const char *oldname, const char *newname); | stdio.h |
ファイル名を変更する。
rename("./Result.html", "./doc/Result.html"); の場合、docディレクトリにコピーされたが、 ./Result.html は削除されない。(GCCとMS VCで確認した) C言語標準ライブラリには、ファイルをコピーする関数はないが、
ディレクトリが異なった場合、rename関数はファイルの移動ではなく、
ファイルのコピーになった。C言語の標準規格がどうなっているかは確認していない。実装に依存するのかも知れない。
| ||||||||||||
round | double round(double ceil); | math.h |
小数点以下を四捨五入する。
【戻り値】小数点以下を四捨五入した値 | ||||||||||||
scanf | int scanf(const char *format, ...); | stdio.h |
キーボードから書式付き(空白やカンマ区切り)データを読み込む。
【戻り値】成功すると読み込んだ項目数を返し、失敗すると -1 を返す。 | ||||||||||||
sin | double sin(double x); | math.h |
角度(単位:ラジアン) x の正弦 (sin) を計算し、結果を double 型で返す。
【戻り値】正弦値 | ||||||||||||
srand | void srand(unsigned int seed); | stdlib.h |
擬似乱数(ランダム数)の種を設定する。rand関数を使うとき、このsrand関数で初期化を行う。
プログラム実行毎に異なる乱数列を発生したいときは、初期化で通常
srand((unsigned int)time(NULL)); を実行する。
【戻り値】なし | ||||||||||||
sscanf | int sscanf(const char *s, const char *format, ...); | stdio.h |
文字列から書式付き(空白やカンマ区切り)データを読み込む。
【戻り値】成功すると読み込んだ項目数を返し、失敗すると -1 を返す。 【プログラム事例】 char s[] = "123,0.456,2.104e+02"; double d[3]; sscanf(s, "%lf,%lf,%lf", &d[0], &d[1], &d[2]); printf("%f,%f,%f", d[0], d[1], d[2]); | ||||||||||||
sqrt | double sqrt(double x); | math.h |
x の平方根を返却する。x が負の場合、定義城エラーが発生する。
【戻り値】x の平方根 | ||||||||||||
stat | int stat(const char *path, struct stat *buf); | sys/stat.h |
ファイルやディレクトリの状態を取得する。
この関数は、C言語のライブラリ関数(標準関数)ではないので、コンパイラにより、使えない場合がある。
【戻り値】成功時: 0、失敗時: -1 | ||||||||||||
strchr | char *strchr(const char *s, int c); | string.h |
文字列 s の先頭から文字 c を探し、最初に見つかった位置をポインタで返却する。
見つからなかったときにはNULLを返却する。
【戻り値】成功時: 最初に見つかった位置(アドレス)、失敗時(見つからなかった時): NULL | ||||||||||||
strrchr | char *strrchr(const char *s, int c); | string.h |
文字列 s の先頭から文字 c を探し、最後に見つかった位置をポインタで返却する。
見つからなかったときにはNULLを返却する。後から探して、最初に見つかった位置と同じ。中間の r は reverse を意味する。
【戻り値】成功時: 最後に見つかった位置(アドレス)、失敗時(見つからなかった時): NULL | ||||||||||||
strcmp | int strcmp(const char *s1, const char *s2); | string.h |
文字列s1と文字列s2を比較する。
【戻り値】s1 > s2 のとき正の値、s1 < s2 のとき負の値、s1 == s2 のとき 0 を返す。この大小関係は文字コード順による。 | ||||||||||||
strncmp | int strncmp(const char *s1, const char *s2, size_t len); | string.h |
文字列s1と文字列s2を先頭から len 文字を比較する。
【戻り値】s1 > s2 のとき正の値、s1 < s2 のとき負の値、s1 == s2 のとき 0 を返す。この大小関係は文字コード順による。 | ||||||||||||
strcpy | void *strcpy(char *str1, const char *str2); | string.h |
コピー先 str1 へコピー元 str2 の '\0' までをコピーする。つまり、str1 の末尾に '\0' が付加される。
str1 は末尾の '\0' を含めて、コピー時に領域溢れが生じない充分なサイズが必要である。
【戻り値】str1 | ||||||||||||
strncpy | void *strncpy(char *str1, const char *str2, size_t len); | string.h | str2からstr1へlen文字数をコピーする。
途中にヌル文字(\0)があったらその後はlen文字数分までヌル文字を埋める。コピー後、末尾にヌル文字を自動で設定しない。
【戻り値】str1 | ||||||||||||
strdup | int strdup(const char *s); | string.h |
文字列sを新しく確保したメモリにコピーして、その文字列の先頭アドレスを返す。
戻り値は用済みになったら free関数で解放する必要がある。
【戻り値】成功時: コピー先文字列の先頭アドレス、失敗(メモリが確保できなかった)時: NULL | ||||||||||||
strlen | size_t strlen(const char *s); | string.h |
文字列 *s の長さを取得し返却する。長さに末尾のヌル文字 '\0' は含まない。
【戻り値】文字列 *s の長さ | ||||||||||||
strstr | char *strstr(const char *s1, const char *s2); | string.h |
文字列 s1 の先頭から文字列 s2 を探し、見つかったときにはその位置をポインタで返却し、
見つからなかったときにはNULLを返却する。
【戻り値】成功時: 最初に見つかった位置(アドレス)、失敗時(見つからなかった時): NULL | ||||||||||||
strtod | double strtod(const char *s, char **endptr); | stdlib.h |
10進数表記(指数表記も可)の文字列 s を、double型に変換し返却する。
文字列中の変換不可能な文字の位置(ポインタ)をendptrに格納する。
全文字が変換された場合には末尾のヌル文字'\0'の位置がendptrに格納される。 【戻り値】 成功時: s の値をdoubleで返却。 失敗時: 0 (変換できる文字が全くなかったとき 0 が戻され、endptrにはsのアドレスが格納される) | ||||||||||||
strtok | char *strtok(char *s1, const char *s2); | string.h |
分解対象文字列 s1 を、文字群 s2 中の文字を区切りに字句(トークン)に分解する。 最初の呼び出しでは s1 には分解対象の文字列を指定する。2回目以降の呼び出しでは s1 に NULL を指定する。 区切り文字は2個以上指定することもできる。 区切り文字があった場所はヌル文字 '\0' に置き換えられる。
char s[] = "123,abc,0.456,XYZ"; char *p = strtok(s, ","); do { printf("%s\n", p); } while ((p = strtok(NULL, ",")) != NULL); | ||||||||||||
strtol | long strtol(const char *s, char **endptr, int base); | stdlib.h |
文字列 s を、baseで指定された基数でlong型に変換し返却する。
文字列中の変換不可能な文字の位置(ポインタ)をendptrに格納する。
例えば char *s = "123ABC"; で base=10 のときは、
A の位置のアドレス(s+3)、base=16 のときは、文字列末尾'\0'の位置のアドレス (s+6) が戻される。
【戻り値】 成功時: s の値をlongで返却。 失敗時: 0 (変換できる文字が全くなかったとき 0 が戻され、endptrにはsのアドレスが格納される) | ||||||||||||
system | int system(const char *command); | stdlib.h |
system関数は command をコマンド インタープリターに渡し、
その文字列がオペレーティング システム コマンドとして実行される。
system は、COMSPEC および PATH の各環境変数を使用して、コマンド インタープリター ファイル CMD.exe を見つける。
command が NULL の場合、コマンド インタープリターの存在を確認するだけである。 【戻り値】引数が空ポインタであれば、コマンドプロセッサが使用可能であるときに限り 0 以外の値を返す。 実引数が空ポインタでないとき、system関数は処理系定義の値を返す。 | ||||||||||||
tan | double tan(double x); | math.h |
角度(単位:ラジアン) x の正接 (tan) を計算し、結果を double 型で返す。
【戻り値】正接値 | ||||||||||||
time | time_t time(time_t *timer); | time.h |
time.h で定義されている time_t は通常 typedef long time_t; である。 【戻り値】一般には グリニッチ標準時(GMT)の1970年1月1日の00:00:00 から現在までの経過時間(秒単位)がもどされる。 失敗時は -1 が戻される。引数 timer が NULL でなかったときは、同じ値が timerの示すアドレスにもセットされる。 | ||||||||||||
tolower | int tolower(int c); | ctype.h |
tolower 関数は,c を大文字から小文字に変換して返す。
【戻り値】小文字に変換された文字 | ||||||||||||
toupper | int toupper(int c); | ctype.h |
tolower 関数は,c を小文字から大文字に変換して返す。
【戻り値】大文字に変換された文字 | ||||||||||||
ungetc | int ungetc(int c, FILE *stream); | stdio.h | 後の read 操作で読めるように、
c を unsigned char にキャストして stream に書き戻す。
この文字が、次の読み込みで最初に読みだされる文字となる。 書き戻しが保証されているのは、一文字だけである。
【戻り値】成功時: 押し戻した1文字、失敗時: EOF(-1)。 | ||||||||||||
utime | int utime(const char *filename, struct utimbuf *buf); | sys/ utime.h |
filename で示される inode のアクセス時刻と修正時刻を buf 中の actime と modtime にそれぞれ変更する。
buf が NULL の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。
【戻り値】成功時: 0、失敗時: -1。 | ||||||||||||
vprintf | int vprintf(const char *format, va_list ap); | stdio.h stdarg.h |
printf()関数と等価であり、可変数引数の代わりに va_list を引数として呼び出される点だけが異なる。
この関数では va_end マクロは呼び出されない。
この関数は va_arg を呼び出すので、呼び出し後の ap の値は未定義(不定)である。
va_list arg; va_start(arg, format); vprintf(format, arg); va_end(arg);【戻り値】成功時:書き出された文字数、失敗時: 負の値。 |