如何在两个字符串c ++

时间:2019-07-16 02:10:24

标签: c++ string for-loop char compare

如果字符串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 个答案:

答案 0 :(得分:1)

您当前正在计算的是这两个char数组在特定索引上是否具有相同字符。这显然不是您想要的。 一些选项: 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