2013-12-16 49 views
0

如何比較兩個字符數組時遇到問題。我們被要求製作一個程序,它將使用2個數組獲得通用性和組合性。組合功能將結合數組中的所有輸入,並且如果有常用字母,該功能將只顯示一次字母。 實施例:如何將特定索引中字符數組的特定值與特定索引中的另一個字符數組進行比較

q w e r r 
e r t y u 
Output: q w e r t y u 

而公共功能將僅顯示普通字符 實施例:

q w e r r 
e r t y u 
Output: e r 

我需要循環語句和動態分配具體的malloc。如果不需要使用布爾數據類型,那麼請不要使用。否則使用。

兩個函數的原型:

char*comb(char*,char*) //For combine method 
char*comm(char*,char*) //For common method 

回答

0

比方說第一個數組是Array1,第二個是Array2

爲了創建組合函數,您應該創建名爲Array3的第三個數組。

public void Combine() 
{ 
    bool exist = false; 
    for (int i=0; i<Array1.lengh; i++) 
    { 
     for (int j=0; j<Array3.lengh; j++) 
     { 
      if (Array[i] != Array[j]) 
       exist = false; 
      else { 
       exist = true; 
       break; 
      } 
     } 
     if (!exist) 
     { 
       Array3.add(Array1[i]); 
       // output Array1[i] depends on the program you're using 
     } 
    } 
} 

查看邏輯應該如何並嘗試創建Common函數。

+0

「bool exists = false」是什麼意思? – Jefferson

+0

'bool'是類似於'int'或'string'的類型....'bool'只能有兩個變量:true或false。在這裏,我測試值是否存在,然後我設置存在爲true,如果不存在,我將它設置爲false,所以如果它不存在,它將被添加到Array3並將被輸出。 – Hanady

+0

噢好吧我明白了。日Thnx。你可以在不使用布爾數據類型的情況下製作這個函數的另一個版本嗎? – Jefferson

0

這裏是結合功能,可以通過字符數組作爲字符串參數的函數如下共同陣列

combine("qwerr", "ertyu");  // returns "qwertyu" 
function combine() { 
    var jString, jArr, cArr; 

    jString = ""; 
    cArr = []; 

    for (var i = 0, ii = arguments.length; i < ii; i++) { 
    jString += arguments[i]; 
    } 

    jArr = jString.split(""); 

    cArr.push(jArr[0]); 

    for (var j = 0, jj = jArr.length; j < jj; j++) { 
    if (test(j)) { 
     cArr.push(jArr[j]); 
    } 
    } 

    function test(j) { 
    var x = true; 
    for (var k = 0, kk = cArr.length; k < kk; k++) { 
     if (cArr[k] == jArr[j]) { 
     x = false; 
     break; 
     } 
    } 
    return x; 
    } 

    return cArr.join(""); 
} 

功能可以利用相同的概念來創建。

相關問題