-4

有没有一种简单的方法可以将字符选择从小写 q 转换为大写 Q?

我已经尝试过 toupper 的 c 版本,但我无法让它在 C++ 中工作。我需要输入的所有字符都是大写的;因此,它们链接到 main 中的选项选择。

例如,如果他们键入 c,则它会转换为 C,并且可以访问或使用 C 链接到的函数。

代码到目前为止没有任何变化:

include <iostream>
#include <stdlib.h>
#include <string>
#include "link.h"

using namespace std;

int main()
{
    link obr;
    string n;
    long int x;
    char choice;

    do{
    cout << "C: Create/Add\n P: Display\nQ: Quit";
    cin >> choice;

      if(choice == 'C'){
                cout << "Name";
                cin >> n;
                cin >> x;
                obr.push(n,x);
        }

    if (choice == 'P'){
        obr.display();
    }
} while(choice != 'Q');

    return 0;
}
4

2 回答 2

1

写吧

#include <cctype>

//...

choice = std::toupper( ( unsigned char )choice );

前提是变量choice具有类型char

您应该确保该选项确实包含一个字母字符而不是控制符号。

于 2016-11-13T20:15:50.837 回答
1

如果您可以确保您的字符集与 C 兼容,toupper()那么您可以非常简单地做到这一点:

std::string s = "this is a string";
std::transform(s.begin(), s.end(), s.begin(), ::toupper);
于 2016-11-13T20:18:26.877 回答