strncpy

char *strncpy( char *dest, const char *source, size_t count )

文字列destに文字列sourceの先頭count文字をコピーする
countがsourceの長さ以下の場合は、
コピーされた文字列の終端にnull文字が追加されない。
countがsourceよりも長い場合は、
countの文字数になるまで、コピー先文字列にnull文字が埋め込まれる。

strncpy( s1, s2, 10 );

文字配列s1に文字列s2の先頭10文字をコピーする
C > 標準関数 > 文字列処理関数 | comments (0) | trackbacks (0)

strstr

char *strstr( const char *str, const char *key )

文字列strの先頭から文字列keyを探し、その位置を返す。
見つからない時はNULLを返す。


char *p;
char s[] = "strstr test";
p = strchr( s, "te" );
puts( p );


ポインタpに文字列s内の文字列"te"のあるアドレスが返る。

出力結果
test
C > 標準関数 > 文字列処理関数 | comments (0) | trackbacks (0)

strtok

char *strtok( char *str, const char *delim )

文字列delimの中の各文字を分離記号として、
文字列strの中からトークンを切り出す。
2回目以降はstrにNULLを指定してstrtokを呼び出す。
戻り値がNULLになるまでstrtokを実行すると、
全てのトークンを得る事ができる。


#include <stdio.h>
#include <string.h>

void main()
{
 char s[] = "123,456.789 012/,.:345:678";
 const char delim[] = "/: ,.";
 char *p;

 p = strtok( s, delim );
 printf( "%s\n", p );
 while ( ( p = strtok( NULL, delim ) ) != NULL )
  printf( "%s\n", p );
}


実行結果

123
456
789
012
345
678

C > 標準関数 > 文字列処理関数 | comments (0) | trackbacks (0)

time

time_t time( time_t *timeptr )

西暦1970年1月1日から何秒経ったかを秒数で返す。


#include <stdio.h>
#include <time.h>

void main()
{
 printf( "%ld\n", time( NULL ) );
}


・調べた秒数は戻り値で取得すればよい。
・引数には変数のアドレスではなくNULLを指定する。
・このデータはctime関数を使って読める形にする。
C > 標準関数 > 時間処理 | comments (0) | trackbacks (0)