2014-11-02 2 views
0

Для проекта, над которым я работаю, я хочу преобразовать письмо в число (например, A = 20). Поэтому я хочу иметь возможность «AQJD» и преобразовать его в число. Как взять то, что пользователь вводил и захватывать определенные элементы.Как захватить определенные элементы ввода?

Что-то же просто, как

char myArray [] = "AQJD" 

могут быть захвачены, как так:

myArray[0] // this will return A because A is the 0th element 

, но как я могу получить то, что пользователь, введенный, чтобы сделать что-то вроде того, что это выше. Я пытался это сделать (вставил ниже), но это не сработало.

string x; //assume I included <string> already 
cout << "Please input what you would like to change: " << endl; 
cin >> x; 
char mine [] = x; 
cout << mine[2] << endl; 

Есть ли способ передать переменную в массив, как я пытался выше?

+0

пространство, введенное пользователем стать ограничителем. Я думаю, что лучше читать с stdin, используя ['std :: getline'] (http://www.cplusplus.com/reference/string/string/getline/). – GingerPlusPlus

ответ

1

std::string уже имеет функцию operator[], которая возвращает символ в указанной позиции. Это точно так же, как и обычный массив символов:

cout << x[2]; // J 
+0

Спасибо! Звучит слишком просто, чтобы быть правдой haha – user3377191

0

Вы можете использовать .c_str() метод std::string, который очень похож:

const char *mine = x.c_str(); 
cout << mine[2] << endl; 
Смежные вопросы