如何将特定索引中的字符数组的特定值与特定索引中的另一个字符数组进行比较

时间:2013-12-16 11:06:12

标签: arrays loops indexing char compare

我在比较两个字符数组时遇到了麻烦。我们被要求制作一个程序,使用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

2 个答案:

答案 0 :(得分:0)

假设第一个数组是Array1,第二个数组是Array2

为了创建Combine函数,您应该创建一个名为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函数。

答案 1 :(得分:0)

这是combine函数,您可以将char数组作为字符串参数传递给函数,如下所示

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("");
}

可以使用相同的概念创建公共数组的函数。