[C言語]文字列をfor文で連結!ポインタでの結合についても

C言語
広告

文字列の連結は、プログラミングにおいて非常に一般的な操作です。

C言語でも文字列を連結する方法がいくつかありますが、

その中でもfor文を使用する方法とポインタを使って文字列を結合する方法を解説します。

広告

文字列をfor文で連結する

for文を使用して文字列を連結する方法は、比較的シンプルで理解しやすい方法です。

基本的な手順は、連結先の文字列バッファに1文字ずつ文字列を追加していくことです。

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

int main() {
    char str1[50] = "Hello";
    char str2[] = "World";
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    
    // str1の末尾にstr2を連結する
    for (int i = 0; i < len2; i++) {
        str1[len1 + i] = str2[i];
    }
    
    printf("連結後の文字列: %s\n", str1);
    
    return 0;
}

この方法では、str1の末尾にstr2を追加しています。

forループでstr2の各文字をstr1の末尾に追加し、最後に文字列の終端を設定しています。

広告

文字列をポインタで結合する

ポインタを使用して文字列を連結する方法は、より効率的で高速な方法です。

これは、文字列を連結する際に新たなメモリ領域を確保せず、元の文字列を変更していく方法です。

#include <stdio.h>

// 文字列を連結する関数
void concat(char *str1, char *str2) {
    // str1の終端を探す
    while (*str1) {
        str1++;
    }
    // str1の終端からstr2の文字を追加していく
    while (*str2) {
        *str1 = *str2;
        str1++;
        str2++;
    }
    // str1に終端文字を追加する
    *str1 = '
#include <stdio.h>

// 文字列を連結する関数
void concat(char *str1, char *str2) {
    // str1の終端を探す
    while (*str1) {
        str1++;
    }
    // str1の終端からstr2の文字を追加していく
    while (*str2) {
        *str1 = *str2;
        str1++;
        str2++;
    }
    // str1に終端文字を追加する
    *str1 = '\0';
}

int main() {
    char str1[50] = "Hello";
    char str2[] = "World";
    
    // 文字列を連結する
    concat(str1, str2);
    
    printf("連結後の文字列: %s\n", str1);
    
    return 0;
}
'; } int main() { char str1[50] = "Hello"; char str2[] = "World"; // 文字列を連結する concat(str1, str2); printf("連結後の文字列: %s\n", str1); return 0; }

この方法では、ポインタを使用してstr1の終端の位置を特定し、そこからstr2の各文字を追加していきます。

最後に、文字列の終端を設定します。

広告

まとめ

C言語で文字列を連結する方法として、for文を使用する方法とポインタを使った方法を紹介しました。

for文を使用した方法はシンプルで直感的ですが、ポインタを使用した方法は効率的で高速です。

どちらの方法も理解しておくと、文字列を効果的に操作することができます。

C言語
広告
広告
塩竈Code
タイトルとURLをコピーしました