Для программы, которую я пишу на основе спецификаций, переменная передается в функцию в виде строки. Мне нужно установить эту строку в переменную 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);
}
}
Спасибо за помощь в продвинутом!
Вы можете получить определенный символ из строки, просто проиндексировав его. Например, пятый символ str
является str[4]
(по одному, так как первый символ str[0]
).
Имейте в виду, что вы столкнетесь с проблемами, если строка будет короче, чем думает ваш индекс.
c_str()
, как у вас в комментариях, дает вам char*
представление (вся строка в виде C-строки, точнее указатель на первый символ), а не char
,
Вы также можете индексировать это, но в этом конкретном случае нет никакого смысла.
вам просто нужно использовать значение [0], и это возвращает первый символ.
char c = value[0];