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

C ++の文字列(反復および再帰)の最初の大文字


このチュートリアルでは、指定された文字列の最初の大文字を見つける方法を学習します。例を見てみましょう。

入力 −チュートリアルポイント

出力 −T

反復法を使用して問題を解決する手順を見てみましょう。

  • 文字列を初期化します。

  • 文字列を繰り返し処理します。

  • isupper を使用して、現在の文字が大文字かどうかを確認します メソッド。

  • 文字が大文字の場合は、現在の文字を返します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
char firstUpperCaseChar(string str) {
   for (int i = 0; i < str.length(); i++)
      if (isupper(str[i])) {
         return str[i];
      }
      return 0;
   }
   int main() {
      string str = "Tutorialspoint";
      char result = firstUpperCaseChar(str);
      if (result == 0) {
         cout << "No uppercase letter" << endl;
      }
      else {
         cout << result << endl;
      }
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

T

再帰的方法を使用して問題を解決する手順を見てみましょう。

  • 文字列を初期化します。

  • 2つのパラメータ文字列とインデックスを受け入れる再帰関数を記述します。

  • 現在の文字が文字列の終わりである場合は、戻ります。

  • 現在の文字が大文字の場合は、現在の文字を返します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
char firstUpperCaseChar(string str, int i = 0) {
   if (str[i] == '\0') {
      return 0;
   }
   if (isupper(str[i])) {
      return str[i];
   }
   return firstUpperCaseChar(str, i + 1);
}
int main() {
   string str = "Tutorialspoint";
   char result = firstUpperCaseChar(str);
   if (result == 0) {
      cout << "No uppercase letter";
   }
   else {
      cout << result << endl;
   }
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

T

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C ++のバイナリツリー(反復および再帰)の完全なノードをカウントします

    バイナリツリーが与えられ、タスクは、反復的かつ再帰的なアプローチを使用して、バイナリツリーで使用可能な完全なノードの数を計算することです。フルノードとは、両方の子があり、子がnullでないノードです。フルノードでは、正確に2つの子を持つノードを考慮することに注意してください。 バイナリツリーは、データストレージの目的で使用される特別なデータ構造です。二分木には、各ノードが最大2つの子を持つことができるという特別な条件があります。バイナリツリーには、検索が並べ替えられた配列と同じくらい高速であり、挿入または削除操作がリンクリストと同じくらい高速であるため、順序付き配列とリンクリストの両方の利点

  2. C ++のバイナリツリー(反復および再帰)のハーフノードをカウントします

    バイナリツリーが与えられ、タスクは、反復的かつ再帰的なアプローチを使用して、バイナリツリーで使用可能なハーフノードの数を計算することです。ハーフノードは、子が1つだけで、もう1つの子がnullであるノードです。ハーフノードでは、リーフノードを考慮しないことに注意してください。 バイナリツリーは、データストレージの目的で使用される特別なデータ構造です。二分木には、各ノードが最大2つの子を持つことができるという特別な条件があります。バイナリツリーには、検索が並べ替えられた配列と同じくらい高速であり、挿入または削除操作がリンクリストと同じくらい高速であるため、順序付き配列とリンクリストの両方の利点