在switch语句中从'const char *'到'char'的转换无效

时间:2014-02-05 04:36:17

标签: c++

我正在尝试创建一个switch语句,该语句接受char数组的第一个字符并将其大写。我还是一个初学者,所以我不知道我做错了什么!我得到的错误是:

error: invalid conversion from 'const char*' to 'char' [-fpermissive]
    return "A";

这是我的代码。

#include <iostream>
using namespace std;

char capitalize(char x)
{
    switch(x)
    {
        case a:
            return "A";
            break;
        default:
        break;
    }
}

int main()
{
    char name[50];

    cout << "What is your name?" << endl;
    cin.getline(name, 49);
    cout << "Hello there, " << name << "." << endl;

    return 0;
}

如果这似乎是一个愚蠢的问题,我很抱歉。

1 个答案:

答案 0 :(得分:4)

return "A";替换为return 'A';

  • 'A' - char的类型,它是单个ASCII字符
  • "B" - const char *的类型,它是以NULL结尾的ASCII字符串
  • L'C' - wchar_t的类型,它是一个Unicode字符
  • L"D" - const wchar_t*的类型,它是以NULL结尾的Unicode字符串