C言語で文字列の入れ替えをどう実装するか?

C言語では、一時変数や排他的論理和演算子を使って文字列の入れ替えを実現することができます。

方法1:一時変数を利用します。

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

void swapStrings(char* a, char* b) {
    char temp[100];
    strcpy(temp, a);
    strcpy(a, b);
    strcpy(b, temp);
}

int main() {
    char str1[100] = "Hello";
    char str2[100] = "World";
    
    printf("Before swap: str1 = %s, str2 = %s\n", str1, str2);
    swapStrings(str1, str2);
    printf("After swap: str1 = %s, str2 = %s\n", str1, str2);
    
    return 0;
}

方法2:排他的な演算子を使用します。

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

void swapStrings(char* a, char* b) {
    int length = strlen(a);
    
    for (int i = 0; i < length; i++) {
        a[i] = a[i] ^ b[i];
        b[i] = a[i] ^ b[i];
        a[i] = a[i] ^ b[i];
    }
}

int main() {
    char str1[100] = "Hello";
    char str2[100] = "World";
    
    printf("Before swap: str1 = %s, str2 = %s\n", str1, str2);
    swapStrings(str1, str2);
    printf("After swap: str1 = %s, str2 = %s\n", str1, str2);
    
    return 0;
}

どちらの方法でも文字列の切り替えが可能ですので、ご自身のニーズに合わせて選択してください。

bannerAds