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 が連結されたことがわかります。

bannerAds