C言語 文字数を指定した文字列のコピー - string.h - [ strncpy ]

2008.11.15 Saturday | by LRESULT


字数を指定した文字列のコピーには、strncpy()を使います。


strncpy
書式 char* strncpy( char *dst, const char *src, size_t n )
機能 文字列を指定した文字列のコピー
引数 char *dst : コピー先となる文字列
const char *src : コピー元となる文字列
size_t n : コピーする文字数
戻り値 コピー先文字列のポインタを返します。

コピーする文字数(n)が、コピー元文字列(src)より大きい場合は、
  「¥0」が追加されます。





サンプルコード
文字列「ABCDEFG」に、文字列「12345」を3文字コピーし、
その後、6文字コピーして表示してみます。
#include <stdio.h>
#include <string.h>

int main(void)
{
  char dst[100] = "ABCDEFG";
  char *src = "12345";

  strncpy( dst, src, 3 );
  printf( "コピーされた文字列 %s¥n", dst ); 

  strncpy( dst, src, 6 );
  printf( "コピーされた文字列 %s¥n", dst ); 

  return 0;
}



結果
コピーされた文字列 123DEFG
コピーされた文字列 12345
と、表示されます。

最初は、3文字のみコピーなので
「ABCDEFG」という文字列に3文字のみ上書きされます。
次は、6文字コピーの為、「¥0」が追加されて上書きされているわけです。

カテゴリ:C言語 string.h | 23:00 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

トラックバック機能は終了しました。

トラックバック