2013-05-19 42 views
-2

我有一個數組作爲我的程序輸入的結果:C編程。比較數組的內容。

// 1。

int i, numberOfOccurances; 

    for(i = 0; i < numOfOccurrances; i++) { 
     printf("%d",PrintOccurrances[i]); 
    } 

,並作爲一個例子輸出:

121 

現在我想比較這陣,這樣我可以打印額外的語句,例如:

// 2。

if (PrintOccurrances == 121) { 
    printf("This means blah"); 
} else if (PrintOccurrances == 232) { 
    printf("This means something else"); 
} 

//我應該設置什麼類型的變量,以及如何將它設置在點1? //我應該在第2點使用什麼類型的字符串語句。

感謝您的任何幫助。

+0

串連價值爲字符串,並使用STRCMP。 – OldProgrammer

+0

歡迎來到Stack Overflow。請儘快閱讀[常見問題]。目前,你還沒有真正提供足夠的信息用於給你一個很好的答案。數組的基本類型是什麼類型('char','int','double')?你是將數組與自己,還是與另一個數組進行比較?數組的語義是什麼?它是否有序?是否允許重複?根據這些答案,會出現更多問題。最終,你的目標是什麼 - 你想要做什麼的人類可理解的陳述? –

+0

我注意到,在片段'// 1.'中,你的變量'PrintOccurances'是一個數組,但是在片段'// 2.'中,你的同名變量是一個標量,而不是一個數組。這增加了解釋您的需求的難度。 (「發生」中也沒有a,但這是一個很小的問題。) –

回答

1

做一個比較函數,並在調用點使用複合文字:

#include <stdbool.h> 

bool int_arr_cmp_n(int const * a, int const * b, size_t len) 
{ 
    while (len--) 
     if (*a++ != *b++) 
      return false; 
    return true; 
} 

用法:

if (int_arr_cmp_n(PrintOccurrances, (int[]){1,2,1}, 3)) { /* ... */ }