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

C++での大文字と小文字を区別しない文字列の比較


C ++では、標準ライブラリに文字列があります。このプログラムでは、2つの文字列が同一であるかどうかを確認する方法を説明します。この場合、ケースは無視されます。

ここでのロジックは単純です。文字列全体を小文字または大文字の文字列に変換し、それらを比較して、結果を返します。

アルゴリズムライブラリを使用して、文字列を小文字の文字列に変換する変換関数を取得しました。

Input: Two strings “Hello WORLD” and “heLLO worLD”
Output: Strings are same

アルゴリズム

Step 1: Take two strings str1, and str2
Step 2: Convert str1, and str2 into lowercase form
Step 3: Compare str1 and str2
Step 4: End

サンプルコード

#include<iostream>
#include <algorithm>
using namespace std;
int case_insensitive_match(string s1, string s2) {
   //convert s1 and s2 into lower case strings
   transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
   transform(s2.begin(), s2.end(), s2.begin(), ::tolower);
   if(s1.compare(s2) == 0)
      return 1; //The strings are same
   return 0; //not matched
}
main() {
   string s1, s2;
   s1 = "Hello WORLD";
   s2 = "heLLO worLD";
   if(case_insensitive_match(s1, s2)) {
      cout << "Strings are same";
   }else{
      cout << "Strings are not same";
   }
}
出力
Strings are same

  1. C++の最小文字列

    同じ長さの2つの文字列sとtがあり、両方とも小文字であるとします。最初にsを任意の順序に再配置してから、sをtに変換するために必要な変更の最小数を数えることを検討してください。 したがって、入力がs =eccynue、t =scienceの場合、出力は「eccynue」を「yccence」に再配置したかのように2になり、yをsに置き換えます。 2番目のcはiで、「科学」になります。 これを解決するには、次の手順に従います- ret:=0 sの頻度を保持する2つの配列cnt1とtの頻度を保持するcnt2を定義します 初期化i:=0の場合、i <26の場合、更新(iを1増やしま

  2. C++で2つのバイナリ文字列を追加するプログラム

    2進数の文字列が2つある場合、それら2つの2進数文字列を加算して得られた結果を見つけ、その結果を2進数文字列として返す必要があります。 2進数は、0または1のいずれかで表される数値です。2つの2進数を加算する際には、2進数の加算規則があります。 0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1 入力 str1 = {“11”}, str2 = {“1”} 出力 “100” 入力 str1 = {“110”},