C言語でstrcat関数を作るには?
C言語では、strcat関数を、ポインタとループを使用して実装することができます。strcat関数は、ある文字列の末尾に別の文字列を追加するために使用されます。
以下は C 言語で書かれた strcat 関数のサンプルです。
#include <stdio.h>
char* strcat(char* dest, const char* src) {
char* ptr = dest;
// 使指针指向dest字符串的末尾
while (*ptr != '\0') {
ptr++;
}
// 将src字符串的字符逐个复制到dest字符串的末尾
while (*src != '\0') {
*ptr = *src;
ptr++;
src++;
}
// 在dest字符串的末尾添加结束符
*ptr = '\0';
return dest;
}
int main() {
char str1[50] = "Hello";
char str2[50] = " World!";
printf("Before strcat: %s\n", str1);
strcat(str1, str2);
printf("After strcat: %s\n", str1);
return 0;
}
この例では、strcatという関数がまず宣言されています。この関数は2つの引数を取ります。1つは目標文字列のdestで、もう1つはソース文字列のsrcです。dest文字列は連結した結果を受け取るのに使用される文字列で、src文字列はdest文字列の末尾に連結される文字列です。
関数では、まずポインタptrでdest文字列の末尾を指し示します。 そして、ループを使用してsrc文字列の文字を1つずつdest文字列の末尾へコピーし、src文字列の終了記号「\0」に遭遇するまで続けます。
最後に、dest文字列の末尾に終端文字’\0’を追加し、文字列の終了を表す。
main関数で、まず「Hello」と「 World!」という文字列を格納する2つの文字配列str1とstr2を宣言しました。次に、strcat関数を呼び出して、str2をstr1の末尾に連結しました。最後に、連結した結果を出力しました。
プログラムを実行すると、以下が出力されます。
Before strcat: Hello
After strcat: Hello World!
str1 の末尾に str2 が連結されたことがわかります。