C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

配列にC++で1つの不一致がある文字列が含まれているかどうかを確認します


文字列sと、文字列Aの別の配列があるとします。配列に、現在の長さの異なる文字列と1文字の違いがある文字列が含まれているかどうかを確認する必要があります。文字列が「banana」のようで、配列が[「bana」、「orange」、「banaba」、「banapy」]のようになっているとすると、文字列banabaが1つあるため、結果はtrueになります。ここでは1文字だけです。バナナとは異なります。

この問題を解決するために、いくつかの手順に従います-

  • 指定された文字列をトラバースし、配列内のすべての文字列を確認してから、arr-

    内のすべての文字列に対して次の手順に従います。
    • arrの文字列が文字列sと同じ長さであるかどうかを確認します

    • 長さが同じである場合は、1文字の不一致があるかどうかを確認し、ある場合はtrueを返し、そうでない場合はfalseを返します。

#include<iostream>
#include<vector>
using namespace std;
bool hasOneCharMismatch(vector<string>arr, string s) {
   int n = arr.size();
   if (n == 0)
      return false;
   for (int i = 0; i < n; i++) {
      if (arr[i].size() != s.size())
         continue;
      bool difference = false;
      for (int j = 0; j < (int)arr[i].size(); j++) {
         if (arr[i][j] != s[j]) {
            if (!difference)
               difference = true;
            else {
               difference = false;
               break;
            }
         }
      }
      if (difference)
         return true;
   }
   return false;
}
int main() {
   vector<string> arr;
   arr.push_back("bana");
   arr.push_back("orange");
   arr.push_back("banaba");
   arr.push_back("banapy");
   if(hasOneCharMismatch(arr, "banana")){
      cout << "One character mismatch found";
   }
   else{
      cout << "One character mismatch not found";
   }
}

出力-

One character mismatch found

  1. 文字列にC++のサブ文字列が含まれているかどうかを確認します

    ここでは、文字列ライブラリ関数を使用してC++で文字列を照合する方法を説明します。ここでは、find()操作を使用して、サブストリングのオカレンスをメインストリングに取得しています。このfind()メソッドは、文字列が見つかった最初の場所を返します。ここでは、このfind()関数を複数回使用して、すべての一致を取得しています。 アイテムが見つかった場合、この関数は位置を返します。ただし、見つからない場合は、string::nposを返します。 したがって、サブ文字列がメイン文字列に存在するかどうかを確認するには、find()の戻り値がstring::nposであるかどうかを確認する必要があ

  2. C++でデフォルト値が1つある通常の配列の初期化

    配列全体を非常に簡単にゼロに初期化できます。これを以下に示します。 int arr[10] = {0}; ただし、上記の方法を使用して、配列全体をゼロ以外の値に初期化することはできません。これを以下に示します。 int arr[10] = {5}; 上記の例では、最初の要素のみが5に初期化されます。他のすべての要素は0に初期化されます。 forループを使用して、ゼロではない1つのデフォルト値で配列を初期化できます。これを以下に示します。 for(i = 0; i<10; i++) {    arr[i] = 5; } 上記の例では、すべての配列要素が5に初期化