2012-11-04 48 views
-1
int main 
{ 
    string data; 
    data = "q"; 

    char myChoice; 

    myChoice = data.c_str(); 
} 

我试过使用c_str(),但它不起作用。如何将string转换为charC++如何将字符串转换为字符

或者说我想问一下

int main() 
{ 
    char myInput; 
    // How to check user input is either a , b or c for char. 
    cout << "Your Input "; 
    cin >> myInput; 
} 

对于string我可以用getline(cin,mystringvariable),然后我检查我stringvariable使用if-else语句。

但是char呢?

+6

'char myChoice = data [0];' – nosid

+0

一个字符串通常由多个字符组成。你期望转换能给你什么?只是字符串的第一个字符? – jogojapan

+0

一个字符串是一个字符数组,你只需要在这种情况下得到这个数组的第一个元素。 –

回答

0

您可以将字符串视为char的数组。您可以使用operator[]超载与std::string类提取从字符串的单个字符:

// string data; 
char myChoice = data[0]; // first char in "data" 

对于你的问题的第二部分,你可以检查char变量与if...else,你字符串做:

char myInput; 
... 
if (myInput == 'a') 
{ 
    ... 
} 
else if (myInput == 'b') 
{ 
    ... 
} 
... 

或者您也可以使用switch声明。

0

您可以使用stdio.h中的getchar()。

int main() { 
    char c; 
    c = getchar(); 
    return (0); 
} 
0

您无法将字符串转换为字符,您必须将其转换为字符数组。如果你想从一个字符串中获取单个字符,你可以通过将字符索引放置在data [index]中并将其分配给字符变量。