Преобразование из строки в символ

Для программы, которую я пишу на основе спецификаций, переменная передается в функцию в виде строки. Мне нужно установить эту строку в переменную char, чтобы установить другую переменную. Как бы я поступил так?

Это в заголовочном файле:

void setDisplayChar(char displayCharToSet);

это функция, которая устанавливает его:

void Entity::setElementData(string elementName, string value){
if(elementName == "name"){
setName(value);
}
else if(elementName == "displayChar"){
//      char c;
//      c = value.c_str();
setDisplayChar('x');//cant get it to convert :(
}
else if(elementName == "property"){
this->properties.push_back(value);
}
}

Спасибо за помощь в продвинутом!

6

Решение

Вы можете получить определенный символ из строки, просто проиндексировав его. Например, пятый символ str является str[4] (по одному, так как первый символ str[0]).

Имейте в виду, что вы столкнетесь с проблемами, если строка будет короче, чем думает ваш индекс.

c_str(), как у вас в комментариях, дает вам char* представление (вся строка в виде C-строки, точнее указатель на первый символ), а не char,

Вы также можете индексировать это, но в этом конкретном случае нет никакого смысла.

9

Другие решения

вам просто нужно использовать значение [0], и это возвращает первый символ.

char c = value[0];
4

По вопросам рекламы [email protected]