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

C ++のビット演算を使用して、アルファベットの文字の位置を検索します


この問題では、英語のアルファベットで構成される文字列strが与えられます。私たちのタスクは、ビット演算を使用してアルファベット内の文字の位置を見つけることです。

問題の説明: ここでは、文字列の各文字の位置を英語のアルファベットのまま返します。

文字列の文字は大文字と小文字を区別しません。つまり、「t」と「T」は同じように扱われます。

問題を理解するために例を見てみましょう。

入力: str =“ Tutorialspoint”

出力: 20 21 20 15 18 9 1 12 19 16 15 9 14 20

ソリューションアプローチ

キャラクターの位置を見つける簡単な解決策は、31で論理積演算を見つけることです。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;

void findLetterPosition(string str, int n) {
   
   for (int i = 0; i < n; i++) {
      cout<<(str[i] & 31) << " ";
   }
}

int main() {
   
   string str = "TutorialsPoint";
   int n = str.length();
   cout<<"The letters position in string "<<str<<" is \n";
   findLetterPosition(str, n);

   return 0;
}

出力

The letters position in string TutorialsPoint is
20 21 20 15 18 9 1 12 19 16 15 9 14 20

  1. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &

  2. C ++を使用して、括弧の文字列から等しい点を見つけます。

    ここでは、括弧の文字列で等しいポイントを取得する方法を説明します。等しい点はインデックスIであり、その前の開始ブラケットの数は、その後の終了ブラケットの数と等しくなります。ブラケット文字列が「(()))(()()())))」のようなものであるとすると、よく見ると次のようになります したがって、0から9までの開始ブラケットの数は5であり、9から14までの終了ブラケットの数も5であるため、これは同じポイントです。 この問題を解決するには、次のいくつかの手順に従う必要があります- すべてのインデックスiまでの文字列に表示される開き角かっこの数を保存します すべてのインデックスIまでの文字