2013-02-12 2 views
5

사양을 기반으로 작성한 프로그램의 경우 변수가 함수로 문자열로 전달됩니다. 다른 변수를 설정하려면 해당 문자열을 char 변수로 설정해야합니다. 이 일을 어떻게 하죠?문자열에서 char - C++ 로의 변환

이것은 헤더 파일에 있습니다 고급의 도움을

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

감사 :

void setDisplayChar(char displayCharToSet); 

이 그것을 설정하는 기능입니다!

+3

그냥 첫 번째 문자를 전달하고 싶습니까? 'value [0]'. – chris

+0

값이 1 문자 이상인지 확인하는 것이 이상적입니다. 또한 : const &;로 패스) –

답변

6

색인을 생성하면 문자열에서 특정 문자를 얻을 수 있습니다. 예를 들어, str의 다섯 번째 문자는 str[4]입니다 (첫 번째 문자가 str[0] 이래로 하나씩 꺼짐).

문자열이 색인보다 짧다고 생각하면 문제가 발생할 수 있습니다. 당신이 당신의 의견에 가지고

c_str()는 당신에게 오히려 char보다 char* 표현 (A C "문자열", 첫 번째 문자에 더 정확하게 포인터로 전체 문자열)를 제공합니다.

동일하게 색인을 생성 할 수 있지만이 특별한 경우에는 아무런 의미가 없습니다.

+0

Yessssss !!! 고맙습니다! 하하 Idk 왜 내가 그걸로 시작하려고하지 않았다. 그것은 너무 단순 해 보였다. – ModdedLife

4

값 [0]을 사용해야하고 첫 번째 문자를 반환합니다.

char c = value[0]; 
관련 문제