Взять Ввод от пользователя, используя метод get и set в c ++? - PullRequest
0 голосов
/ 18 марта 2020

Я использую метод get и set и c ++. Я хочу взять ввод от пользователя и вывести эту строку в верхнем регистре

, например:

Когда пользователь вводит имя: alex , тогда o / p равно ALEX

#include <iostream>
using namespace std;
#include <cstring>

class abc
{
    private: 
    string name_;

     //take the input from the user
     //cout << "Enter the Name: ";
     //cin >> name_;

    public: 

      string getname()
      {
        return name_;
      }

      string setname(string name)
      {
          name_=name;
      }
};

int main()
{
  abc a;
  string name_=a.getname();
  cout << name_;

  _name(toupper(name_));

  return 0;
}

Я знаю, что одна функция isupper (), и я ссылаюсь на эту ссылку: http://www.cplusplus.com/reference/cctype/toupper/

Я пытаюсь получить вход от пользователь и напечатайте эту строку в верхнем регистре, но выдают ошибку:

main.cpp: In function ‘int main()’:
main.cpp:44:22: error: no matching function for call to ‘toupper(std::string&)’
   _name(toupper(name_));
                      ^

что я пытаюсь сделать: https://onlinegdb.com/SyZnXIkUI

1 Ответ

1 голос
/ 18 марта 2020

Ваша проблема в том, что toupper () не принимает std :: string, он просто берет один символ. Таким образом, чтобы преобразовать всю строку в верхний регистр, вам нужно сделать что-то вроде этого:

std::string text;

std::cin >> text;

for(auto &c : text)
{
    c = toupper(c);
}
...