如何比较两个字符串并返回相同的单词数?

时间:2015-03-30 21:09:48

标签: c string compare words

我正在使用C编写代码,而且我没有一种有效的方法来进行这种比较,如果有人能帮助我,我将非常感激。

示例:

W1:白墙的大房子 W2:房屋墙壁

返回: 2

1 个答案:

答案 0 :(得分:0)

在考虑如何解决问题时,有助于将其分解为您可以清楚地了解如何继续进行的步骤,以及他们如何向解决方案迈进。像这样的通常做法是

  • 制作每个字符串的副本
  • 为每个字符串创建一个指向char*的指针数组,其中
  • 指向复制的字符串,而
  • 依次指向复制的字符串
  • 解析为“words”(将'\0'放在所有非单词字符
  • 在字符串数组
  • 上运行qsort

然后,有两个排序的单词指针数组,你可以使用strcmp编写一个循环来检查单词的相等性。我建议使用strcmp因为(因为数组已经排序),所以很容易检查两个数组中的一个或另一个中的单词与另一个数据相比何时丢失。

复制/解析/排序部分自然是一个函数,给定一个字符串并返回指针数组。调用者应该释放它(以及它所指向的切碎的字符串)。