C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス strcat

🔧 文字列 ・ string.h ・ C89

strcat の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

char *strcat(char *dest, const char *src);

どんな関数か

コピー先文字列の末尾に別の文字列を連結する。コピー先バッファの残り容量を確認しないため、strcpy同様にオーバーフローを起こしやすい注意が必要な関数。 連結を繰り返すたびに文字列全体を先頭から走査し直すため、大量連結にはループ全体がO(n^2)になりやすい。

使用例

#include <stdio.h>
#include <string.h>
int main(void) {
    char buf[16] = "Hello, ";
    strcat(buf, "C!");
    puts(buf);
    return 0;
}

つまずきやすい注意点

⚠️ 連結後の長さがバッファを超えないか呼び出し側で必ず確認する。危険ならstrncatかsnprintfを使う。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

strcat と一緒に使う関数

strncat連結する文字数の上限を指定できるstrcatの安全版。ただし上限は「追加する文字数」であり、コピー先の残り容量そのもので… strcpy文字列をコピー先バッファへコピーする。コピー先のサイズを一切考慮しないため、コピー元がコピー先より長いとバッファオーバー…

この関数が出てくる解説

string.h の主要関数strlen・strcpy・strcat・strcmp の役割と使い方を説明できる

同じ分類(文字列)の関数

memcmp memcpy memmove memset memset_explicit strchr strcmp strcoll strcpy strcspn strdup strerror strlen strncat strncmp strncpy

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る