strncpy

[機能]

  ある文字列を別の文字列に指定された文字数だけコピーします.コピーする文字列がコピー元の文字列の長さより小さい場合は,コピーされた文字列に NULL 文字('\0')が付加されません.

[形式]
#include <string.h>

char *strncpy(char *str1, const char *str2, size_t num)
	str1 : コピー先の文字列
	str2 : コピー元の文字列
	num  : コピーする文字数		
[使用例]

  1. 文字列の結合,コピー,文字列の長さを計算します
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char str[81];
    
    	strncpy(str, "This is a test", 6);   // 文字列のコピー
    					// str = "This is a test"; はできない.ただし,(文字列の長さ+1)と
    					// 配列の大きさが一致していればできる(char str[15])
    	str[6] = '\0';
    	printf("文字列は %s ,長さは %d\n", str, strlen(str));   // strlen()は文字列の長さ
    
    	strncat(str, "s a test", 3);   // 文字列の連結
    	printf("文字列は %s ,長さは %d\n", str, strlen(str));
    
    	strcat(str, " test");
    	printf("文字列は %s ,長さは %d\n", str, strlen(str));
    
    	strcpy(str, "End of test");
    	printf("文字列は %s ,長さは %d\n", str, strlen(str));
    
    	return 0;
    }
    			
    (出力)
    文字列は This i ,長さは 6
    文字列は This is a ,長さは 9
    文字列は This is a test ,長さは 14
    文字列は End of test ,長さは 11			
[参照]

strcpy, strlen

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引