开发者

How to convert a string to char[] [duplicate]

开发者 https://www.devze.com 2023-04-04 06:11 出处:网络
This question already has answers here: Closed 11 years ago. 开发者_开发知识库 Possible Duplicate:
This question already has answers here: Closed 11 years ago. 开发者_开发知识库

Possible Duplicate:

Convert std::string to const char* or char*

i've got a line from a txt data with this methode

 for ( int anrede=0;!user1.eof();anrede++){
     if (anrede==1){
         getline(user1, inhalt_anrede);       
     }
 }

now inhalt_anrede should be converted to char[5] anrede i have used anrede in other parts of the program.

so the txt data works like a save-data.

i'm still learning so please be tender ;D.

btw.: no, this is no homework like someone says about a other question from me. i from germany and in germany there is no C++ @ schools. not even java or delphi. if ur lucky u learn HTML, thats it.


std::string str("abc");
char cstr[5];
strcpy(cstr, str.c_str());

Be sure not to overflow the c string (can contain only 4 chars + NULL in this example).


You may want to look at the c_str() method of the string. For more information look here http://cplusplus.com/reference/string/string/c_str/


Strings have a c_str() method that returns a char*. If you need it to be a char[5], then copy the first five characters from the string to one.

 char strArr[5];
 for (int i = 0; i < 5 && i < inhalt_anrede.length(); ++i) {
     strArr[i] = inhalt_anrede[i];
 }

Keep in mind that strArr isn't necessarily '\0' terminated now.


Use c_str() member of std::string and memcpy:

char anrede[5];
if (anrede.size() >= 5)
    memcpy(anrede, inhalt_anrede.c_str(), 5);
else
    throw "string is too short";

Note that you use a variable called anrede already as counter in your for loop!

0

精彩评论

暂无评论...
验证码 换一张
取 消