strncat*

[機能]

  ある文字列に,別の文字列の最初の何文字かを結合します.その結果の文字列の終端にNULL 文字( '\0' )を付加してから,連結された文字列へのポインタを返します.

  Java の場合は,String クラスのメソッド substring と + 演算によって,文字列の任意の部分を結合可能です.

[形式]
( C/C++ の場合)

	#include <string.h>

	char *strncat(char *str1, const char *str2, size_t num)
		str1 : 結合先の文字列
		str2 : 結合する文字列
		num  : 結合する文字数

( Java の場合:substring と + 演算の利用)

	例えば,以下の方法により,str2 の 2 文字目から 6 文字目までを,str1 に結合可能です.

		str1 = str1 + str2.substring(1, 6);
		
[使用例]

  1. 文字列の結合,コピー,文字列の長さを計算します(C/C++)
    #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
    			
  2. 文字列の結合,コピー,文字列の長さを計算します(Java)
    import java.io.*;
    
    public class Test {
    
    	public static void main(String args[])
    	{
    		String str1 = new String ("This is a test");
    		String str2;
    
    		str2 = str1.substring(0, 6);   // 文字列のコピー(部分文字列を取り出す)
    		System.out.println("文字列は " + str2 + " ,長さは " + str2.length());   // length()は文字列の長さ
    
    		str2 = str2 + "s a";   // 文字列の連結
    		System.out.println("文字列は " + str2 + " ,長さは " + str2.length());
    
    		str2 = str2 + " test";
    		System.out.println("文字列は " + str2 + " ,長さは " + str2.length());
    
    		str2 = "End of test";   // str2 = new String("End of test"); も可能(多少意味は異なる)
    		System.out.println("文字列は " + str2 + " ,長さは " + str2.length());   // length()は文字列の長さ
    	}
    }
    			
    (出力)
    文字列は This i ,長さは 6
    文字列は This is a ,長さは 9
    文字列は This is a test ,長さは 14
    文字列は End of test ,長さは 11
    			
[参照]

strcat, strlen

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