如何查找两个字符串 c++ 中常用字符的数量

How to find the number of common characters in two strings c++

本文关键字:字符 常用 c++ 两个 何查找 查找 字符串      更新时间:2023-10-16

如果字符串 1 和字符串 2 大小相等,我们如何找到常用字符的数量并存储到某个 int 中?

例如:

string A = "abcdabc"
string B = "cabzabc"

常见的字符数是 7 个字符中的 6 个(计算重复项)。

到目前为止,我有:

int count = 0;
for(int I = 0; I < A.size(); I++)
{
if(A[I] == B[I]
{
count++;
}
}

但是当我输出计数时,它= 0。

编辑:让它工作伙计们,我的初始化字符串有问题,但现在很好!谢谢。

您当前正在计算的是这两个字符数组在某个索引上是否具有相同的字符。这显然不是你所希望的。 一些选项: 1.创建地图并存储每个字母的出现次数,然后进行比较 2. 遍历一个数组,对于那里的每个字符,迭代完成其他数组并计算出现次数 3.按字母顺序对这些数组进行排序,您将看到每个字母在每个数组中出现的次数

编辑:让我们通过您的代码运行:

I = 0; A[I] = 'a'; B[I] = 'c' //are they the same? count = 0
I = 1; A[I] = 'b'; B[I] = 'a' //are they the same? count = 0
I = 2; A[I] = 'c'; B[I] = 'b' //are they the same? count = 0
I = 3; A[I] = 'd'; B[I] = 'z' //are they the same? count = 0
I = 4; A[I] = 'a'; B[I] = 'a' //are they the same? count = 1
I = 5; A[I] = 'b'; B[I] = 'b' //are they the same? count = 2
I = 6; A[I] = 'c'; B[I] = 'c' //are they the same? count = 3