2016-09-15 41 views
0

我有2個字符串值。 str和str2。我想異或STR和str2如何在C中異或兩個字符串?

我的代碼是

#include <stdio.h> 

int main(){ 
    char str[] = "Hello"; 
    char str2[] = "World"; 
    char outupt; 

    output = str[]^str2[]; 
    printf("%s",output) 

    return 0; 
} 
+1

我知道xor兩位(或布爾值)是什麼意思,但是您對_xoring_ strings的定義是什麼? –

+0

在C中,一個字符串只是最後一個帶有NUL字符的'char'數組。 'str'和'str2'是六個字節的數組。 'output'只是一個字節。所以目前還不清楚你想要完成什麼。 – user3386109

+0

@ThomasWilmotte我只需要與str2的異或輸出 –

回答

4

逐個字符:

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

int main(){ 
    int i; 
    char str[] = "Hello"; 
    char str2[] = "World"; 
    char output[6]; 

    for (i=0; i<strlen(str); i++) 
    { 
    char temp = str[i]^str2[i]; 
    output[i] = temp; 
    } 

    output[i] = '\0'; 
    printf("%s", output); 

    return 0; 
} 

當然,你需要確保output大到足以容納結果(包括空終止符),並且如果strstr2的長度不相同,則需要決定如何處理。

+0

感謝兄弟,但編輯printf(「%s」,輸出);和字符輸出[6]; –

+0

@MinKoKo啊,好的,謝謝。您的問題也一樣,我從那裏複製並粘貼。 – yano

+0

它只適用於相同大小的字符串 – EsmaeelE

相關問題