2013-02-12 17 views
5

Per un programma che sto scrivendo in base alle specifiche, una variabile viene passata a una funzione come stringa. Devo impostare quella stringa su una variabile char per impostare un'altra variabile. Come potrei fare questo?Conversione da stringa a char - C++

Questo è nel file di intestazione:

void setDisplayChar(char displayCharToSet); 

questa è la funzione che lo:

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); 
    } 
} 

Grazie per l'aiuto in anticipo!

+3

Vuoi dire che vuoi solo passare il primo personaggio? 'Valore [0]'. – chris

+0

Verificare che il valore sia di un carattere in lunghezza, idealmente. Inoltre: passa da const &;) –

risposta

6

È possibile ottenere un carattere specifico da una stringa semplicemente indicizzandolo. Ad esempio, il quinto carattere di str è str[4] (disattivato di uno poiché il primo carattere è str[0]).

Ricorda che ti imbatterai in problemi se la stringa è più corta di quanto l'indice pensi che sia.

c_str(), come avete nei vostri commenti, vi offre la char* rappresentazione (l'intera stringa come C "string", più correttamente un puntatore al primo carattere), piuttosto che un char.

Si potrebbe indicizzare questo, ma non ha senso in questo caso particolare.

+0

Yessssss !!! Grazie! Haha Idk, perché non l'ho provato per cominciare. Sembrava troppo semplice. – ModdedLife

4

è sufficiente utilizzare il valore [0] e restituisce il primo carattere.

char c = value[0]; 
Problemi correlati