strcpy(C/C++), substring(Java)

[機能]

  ある文字列を別の文字列に NULL 文字( '\0' )を含めてコピーし,コピー先の文字列へのポインタを返します.これらの引数の文字列には,NULL 文字が入っているものと想定しています.

  Java の場合は,部分文字列を取り出す String クラスのメソッド substring を利用することによって可能です.

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

	#include <string.h>

	char *strcpy(char *str1, const char *str2)
		str1 : コピー先の文字列
		str2 : コピー元の文字列

( Java の場合: String クラスのメソッド substring を利用)

	例えば,str2 を str1 にコピーするためには以下のいずれかの方法で可能です.

		str1 = str2.substring(0, str2.length());
		str1 = str2.substring(0);
		
[使用例]

  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
    			
[参照]

strncpy, strlen

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