Я знаю, что это неправильно, однако просто учитесь делать рекурсивные функции и пытаться понять, как это лучше работать.подсчет букв верхнего регистра в рекурсивной функции
#include <iostream>
using namespace std;
int getUpper (const string& s, int high) {
int count=0;
if(s.size()>0) {
if (s[0] <='Z' && s[0] >='A')
count++;
return getUpper(s.substr(1,s.size()-1), high-1);
}
return count;
}
int getUpper (const string& s){
int high=s.size()-1;
int count=getUpper(s,high);
return count;
}
int main()
{
string s="WeLC";
int value=getUpper(s);
cout << value;
return 0;
}
Почему это не возвращает номер счета? от 4.
В качестве побочного примечания 'std :: count_if' является правильным способом для этого. – chris