【问题标题】:How to compare a certain value of a character array in a specific index to another character array in a specific index如何将特定索引中的字符数组的某个值与特定索引中的另一个字符数组进行比较
【发布时间】:2014-01-03 18:03:30
【问题描述】:

我在比较两个字符数组时遇到了问题。我们被要求制作一个程序,该程序将使用 2 个数组获取公共字符和组合字符。 combine 函数将组合数组中的所有输入,如果有共同的字母,该函数将只显示该字母一次。 示例:

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

【问题讨论】:

    标签: arrays loops indexing char compare


    【解决方案1】:

    假设第一个数组是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函数。

    【讨论】:

    • “bool exists = false”是什么意思?
    • bool 是类似intstring...的类型。bool 只能接受两个变量:truefalse。这里我在测试值是否存在,然后我设置exist为true,如果不存在,我设置为false,所以如果不存在,则添加到Array3中并输出。
    • 哦,好的,我明白了。谢谢。你能在不使用布尔数据类型的情况下制作这个函数的另一个版本吗?
    • 同一个程序。我们需要使用 malloc 函数我的 func 原型也是 charcomb(char,char*) 和 charcomm(char,char*)
    • 既然您有所有这些要求,请编辑您的问题和所有信息,以便您在不浪费时间的情况下得到正确答案。
    【解决方案2】:

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

    可以使用相同的概念创建普通数组的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-03
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2022-12-22
      • 1970-01-01
      • 2015-09-26
      相关资源
      最近更新 更多