C言語で文字列を結合する方法
C言語では、文字列の連結を実現するための様々な方法がある:
- strcat関数を利用する。strcat関数により、ある文字列の末尾に別の文字列を追加することができる。なお、追加される文字列は、文字配列でなければならず、文字列定数では指定できない。
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "Hello";
char str2[] = " World!";
strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
- sprintf関数は書式化された文字列を文字配列に出力する。
#include <stdio.h>
int main() {
char str[50];
sprintf(str, "%s%s", "Hello", " World!");
printf("%s\n", str);
return 0;
}
- ポインタ操作を使用する:ポインタ操作として、文字列の連結が実現できる。
#include <stdio.h>
int main() {
char str1[50] = "Hello";
char str2[] = " World!";
char *ptr = str1;
while (*ptr) {
ptr++;
}
while (*str2) {
*ptr = *str2;
ptr++;
str2++;
}
*ptr = '\0';
printf("%s\n", str1);
return 0;
}
ポインタ操作を用いる際は、連結後の文字列を格納する十分な領域を対象文字配列が保持していることを確認する必要があります。