C ++中字符串(迭代和递归)中的第一个大写字母

在本教程中,我们将学习如何在给定的字符串中找到第一个大写字母。让我们来看一个例子。

输入-Nhooo

输出-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 = "Nhooo";
      char result = firstUpperCaseChar(str);
      if (result == 0) {
         cout << "No uppercase letter" << endl;
      }
      else {
         cout << result << endl;
      }
   return 0;
}
输出结果

如果运行上面的代码,则将得到以下结果。

T

让我们看看使用递归方法解决问题的步骤。

  • 初始化字符串。

  • 编写一个接受两个参数字符串和索引的递归函数。

  • 如果当前字符是字符串的结尾,则返回。

  • 如果当前字符是大写字母,则返回当前字符。

示例

让我们看一下代码。

#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 = "Nhooo";
   char result = firstUpperCaseChar(str);
   if (result == 0) {
      cout << "No uppercase letter";
   }
   else {
      cout << result << endl;
   }
   return 0;
}
输出结果

如果运行上面的代码,则将得到以下结果。

T

结论

如果您对本教程有任何疑问,请在评论部分中提及。