【发布时间】:2012-12-11 04:26:06
【问题描述】:
我正在使用 VS2012/C++,我需要将 std::string 转换为 char *,但我在网上找不到任何材料来指导如何去做。
任何代码示例和建议将不胜感激。
【问题讨论】:
-
@Mysticial:好吧,严格来说应该是
const char*,不是吗?但我猜这可能已经足够好了。
标签: c++ visual-studio-2010 type-conversion
我正在使用 VS2012/C++,我需要将 std::string 转换为 char *,但我在网上找不到任何材料来指导如何去做。
任何代码示例和建议将不胜感激。
【问题讨论】:
const char*,不是吗?但我猜这可能已经足够好了。
标签: c++ visual-studio-2010 type-conversion
使用
std::string bla("bla");
char* blaptr = &bla[0];
这保证从 C++11 开始就可以工作,并且在 C++11 之前的所有流行实现上都有效。
如果您只需要const char*,您可以使用std::string::c_str() 或std::string::data()
【讨论】:
¡║½½½½½½½½½½½½½½EL)¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■¯■B¶↑h4ë¡║
for (p = strtok( buffer, "~" ); p; p = strtok( NULL, "~" )) { string jobR(p); char* job = &jobR[0]; parseJobParameters(job); },而实际显示输出的函数是 int parseJobParameters(char * buffer) { // Parse raw data, should return individual job parameters const char* p; int rows = 0; for (p = strtok( buffer, "|" ); p; p = strtok( NULL, "|" )) { cout<<p; } return (1); }