2013-02-12 17 views
5

एक प्रोग्राम के लिए मैं विनिर्देशों के आधार पर लिख रहा हूं, एक चर को एक स्ट्रिंग के रूप में एक चर में पास किया जाता है। एक और चर सेट करने के लिए मुझे उस स्ट्रिंग को एक चर चर में सेट करने की आवश्यकता है। मैं ऐसा कैसे कर पाऊंगा?स्ट्रिंग से चार में रूपांतरण - सी ++

यह हेडर फाइल में है:

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

आपका मतलब है कि आप केवल पहले अक्षर में गुजरना चाहते हैं? 'मूल्य [0]'। – chris

+0

यह मानना ​​कि मान एक लंबाई में आदर्श है, आदर्श रूप से। इसके अलावा: कॉन्स द्वारा पास करें;; –

उत्तर

6

आप इसे अनुक्रमणित करके स्ट्रिंग से एक विशिष्ट चरित्र प्राप्त कर सकते हैं। उदाहरण के लिए, str का पांचवां चरित्र str[4] है (पहले वर्ण के बाद से str[0] है)।

ध्यान रखें कि यदि आपकी अनुक्रमणिका की तुलना में स्ट्रिंग कम है तो आप समस्याओं में भाग लेंगे।

c_str(), जैसा कि आप अपनी टिप्पणी में है, तो आप एक char* प्रतिनिधित्व (एक सी "स्ट्रिंग", पहले वर्ण के लिए और अधिक सही ढंग से एक सूचक के रूप में पूरी स्ट्रिंग) के बजाय एक char से देता है।

आप समान रूप से इंडेक्स कर सकते हैं लेकिन इस विशेष मामले में कोई बात नहीं है।

+0

Yessssss !!! धन्यवाद! हाहा इडक क्यों मैंने इसे शुरू करने की कोशिश नहीं की। यह बहुत आसान लग रहा था। – ModdedLife

4

आपको केवल मूल्य [0] का उपयोग करने की आवश्यकता है और यह पहला char लौटाता है।

char c = value[0]; 
संबंधित मुद्दे