【问题标题】:How to Compare between 2D String Array elements to find the repeated elements?如何比较二维字符串数组元素以找到重复的元素?
【发布时间】:2020-04-25 00:33:22
【问题描述】:

所以,我有这个课程要求我们在字符串中找到重复的单词并显示重复的单词以及它们重复的次数。

我的想法是提取单词并将每个单词作为字符串放入 2D 字符串数组中,然后将每个元素与整个 2D 数组进行比较,在重复的情况下,然后将单词与重复次数一起显示.

我能够实现提取单词并将它们放入二维字符串数组的第一部分。但是,我被困在那里,不知道如何将每个元素与字符串进行比较。

非常感谢您的帮助。

【问题讨论】:

  • 请先正确格式化您的代码。

标签: c arrays string 2d


【解决方案1】:

对于字符串的比较,您可以使用以下逻辑: 可以嵌套两个循环,外部循环将从 i=0 到单词数,内部从 j=i+1 到单词数(参考二维数组的行,现在可以比较行)。 现在一旦遇到重复,它将被设为 0,以避免一次又一次地检查并增加计数。此后,在打印或执行任何操作时,将检查计数是否大于 1,以及单词本身是否不是 0。

for(int i=0;i<n;++i){
        count = 1;

    for(int j=i+1;j<n;++j){

        if(word[i]==word[j]){
        ++count;     word[j]="0"; // this is to avoid recounting duplicate word

         }
     }                           // end of inner for loop

        if(count>1 && word[i]!=0){
        printf("Duplicate word is %s",word[i]);   //or any other work
        }
} // end of outer for loop



【讨论】:

  • 感谢您的帮助 :) 您的方法对 word[j]="0" 进行了一些小的更改,我将其更改为 words[j][0]='\0';它奏效了!
猜你喜欢
  • 1970-01-01
  • 2016-05-16
  • 2021-11-12
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多