strcat

Autres langues

Langue: ja

Version: 2007-06-15 (fedora - 25/11/07)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

名前

strcat, strncat - 二つの文字列を連結する

書式

 #include <string.h>
 
 char *strcat(char *dest, const char *src);
 
 char *strncat(char *dest, const char *src, size_t n);
 

説明

strcat() 関数は、dest 文字列の後に src 文字列を付け加える。 その際に、dest の最後にあるヌルバイト (`\0') は上書きされ、 新たに生成された文字列の末尾に終端のヌルバイトが付与される。 二つの文字列 srcdest は重なってはならない。 また、文字列 dest は、連結後の結果を格納するのに 十分な大きさでなければならない。

strncat() も同様だが、以下の点が異なる。

*
src のうち最大 n 文字が使用される。
*
srcn 文字以上の場合、 src はヌル終端されている必要はない。

strcat() と同じく、dest に格納される結果の文字列は常にヌル終端される。

srcn 文字以上の場合、 strcat() は destn+1 文字を書き込む (src からの n 文字と終端のヌルバイトである)。 したがって、dest の大きさは最低でも strlen(dest)+n+1 でなければならない。

strncat() の簡単な実装は以下のような感じであろう:

 
 char*
 strncat(char *dest, const char *src, size_t n)
 {
     size_t dest_len = strlen(dest);
     size_t i;
 
     for (i = 0 ; i < n && src[i] != '\0' ; i++)
         dest[dest_len + i] = src[i];
     dest[dest_len + i] = '\0';
 
     return dest;
 }
 

返り値

strcat() 関数と strncat() 関数は、結果としてできる文字列 dest へのポインタを返す。

準拠

SVr4, 4.3BSD, C89, C99.

関連項目

bcopy(3), memccpy(3), memcpy(3), strcpy(3), strncpy(3), wcscat(3), wcsncat(3)