Ske*_*ith 1 c++ string pointers char
我已经在google中进行了搜索并被告知这是不可能的,因为我只能char *从字符串中获取静态,所以我正在寻找替代方案.
下面是这样的情况:我有一个.txt文件,其中包含其他.txt文件和一些数字的列表,这样就可以将程序添加到无需重新编译的程序中.我使用an ifstream将文件名读入字符串.
它们所需的功能是期望char *不是a string,显然这种转换是不可能的.
我可以访问这个函数,但它调用另一个函数,char *所以我认为我坚持使用char *.
有没有人知道一个工作或另一种方式这样做?
Kon*_*lph 12
在C++中,如果需要non,我总是会执行以下操作const char*:
std::vector<char> buffer(str.length() + 1, '\0');
std::copy(str.begin(), str.end(), buffer.begin());
char* cstr = &buffer[0];
Run Code Online (Sandbox Code Playgroud)
第一行创建了一个可修改的字符串副本,该副本保证驻留在连续的内存块中.第二行获取指向此缓冲区开头的指针.请注意,向量是一个比字符串大的元素,以容纳空终止.
您可以const char*使用c_str以下命令获取字符串:
std::string str = "foo bar" ;
const char *ptr = str.c_str() ;
Run Code Online (Sandbox Code Playgroud)
如果你只需要一个char*你必须复制,例如:
char *cpy = new char[str.size()+1] ;
strcpy(cpy, str.c_str());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10404 次 |
| 最近记录: |