C言語,strncat()関数で文字数を指定して文字列を連結する

スポンサーリンク

鍛錬 750

C言語,strncat()関数で文字数を指定して文字列を連結する

文字数(バイト数)を指定して2つの文字列を連結する方法の一つとして、strncat()関数を使用する方法があります。
 
以下は、strncat()関数についてです。

#include <string.h>

char *strncat(char *dest, const char *src, size_t n);
 

 
dest の終端に存在するヌルバイト(‘\0’)は src の先頭で上書きされ、連結された文字列の最後尾にヌルバイト(‘\0’)が付加されます。

src の内、n バイトが連結されます。

引数

以下は、上記の引数についてです。

引数 意味
char *dest 連結先の文字列
const char *src 新たに連結する文字列
size_t n 新たに連結する文字列の内、連結するバイト数

戻り値

以下は、戻り値についてです。

戻り値
char 生成された文字列へのポインタ
 
スポンサーリンク

プログラム

以下は、文字列を連結する際に文字数を指定して連結するプログラム、test_strncat.c です。

今回は、文字列「AAA」と文字列「123456789」を連結する際に、連結する文字数を 7 として連結しています。

// include
#include <stdio.h>
#include <string.h>

// main
int main(void)
{
	char str[256] = "";
	char tmp[256] = "";
	
	strncpy(str, "AAA", sizeof(str) - 1);
	printf("連結前 --> [%s]\n", str);
	
	// 7文字連結
	strncpy(tmp, "123456789", sizeof(tmp) - 1);
	strncat(str, tmp, 7);
	printf("連結後 --> [%s]\n", str);
	
	return 0;
}

実行結果

以下は、プログラム test_strncat.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_strncat.c -o test_strncat
***@ubuntu:~/***/test/c$ ./test_strncat
連結前 --> [AAA]
連結後 --> [AAA1234567]

 
上記に示した通り、文字数を指定して文字列を連結することができました。

スポンサーリンク

シェアする

フォローする