Member 14924354 Ответов: 2

Как мне преобразовать эти коды Python в коды C++?


def string_test(s):
    d={"UPPER_CASE":0, "LOWER_CASE":0}
    for c in s:
        if c.isupper():
           d["UPPER_CASE"]+=1
        elif c.islower():
           d["LOWER_CASE"]+=1
        else:
           pass
    print ("Original String : ", s)
    print ("No. of Upper case characters : ", d["UPPER_CASE"])
    print ("No. of Lower case Characters : ", d["LOWER_CASE"])

string_test('The quick Brown Fox')


Что я уже пробовал:

Мне нужно преобразовать этот код в код C++. Кроме того, я должен нарисовать блок-схему, но я могу сделать это сам. Не могли бы вы помочь мне просто преобразовать его? Спасибо.

F-ES Sitecore

Это не служба перевода кода, и если вы заставляете кого-то другого делать вашу домашнюю работу, то вы ничему не научились.

2 Ответов

Рейтинг:
2

CPallini

Попробуй

#include <iostream>
#include <string_view>
#include <cctype>

using namespace std;

class Foo
{
  int lco, uco;

public:
  Foo(std::string_view s):lco{},uco{}
  {
    for (const auto & c : s)
      islower(c) ? ++lco : isupper(c) ? ++uco : 0;
  }
  int lower(){return lco;}
  int upper(){return uco;}
};


int main()
{
  std::string_view test{ "The quick Brown Fox" };

  Foo f(test);

  std::cout << "Original String: " << test << endl;
  std::cout << "No. of Upper case characters: " <<  f.upper() << endl;
  std::cout << "No. of Lower case characters: " <<  f.lower() << endl;
}


Richard MacCutchan

+5 за такой элегантный код.

CPallini

Большое тебе спасибо, Ричард.

Рейтинг:
1

OriginalGriff

Это не служба преобразования кода: мы здесь не для того, чтобы переводить код для вас.
Даже если бы мы это сделали, то в конечном итоге вы получили бы не “хороший код” на целевом языке – они основаны на очень разных фреймворках, и то, что заставляет что-то работать на одном языке, не всегда “переводится” непосредственно на другой.
Таким образом, вы получаете очень плохой код, который трудно, если не невозможно поддерживать, который не может быть хорошо обновлен, и это вызовет у вас огромную головную боль, если оригинал будет изменен. И это будет кошмар для отладки, если он не будет работать “прямо из коробки”.
Вместо этого используйте исходный код в качестве спецификации для нового приложения, написанного на целевом языке / фреймворке, и напишите его w=с нуля, используя оригинал в качестве “шаблона”. Вы получите гораздо, гораздо лучший результат, который сэкономит вам много времени в долгосрочной перспективе.