首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中将字符串转换为C字符串

在C++中将字符串转换为C字符串
EN

Stack Overflow用户
提问于 2012-08-06 09:08:20
回答 4查看 124.7K关注 0票数 22

我有一个字符串要转换,string = "apple",我想把它放到一个包含{a, p, p, l, e, '\0'}的,这种风格的C字符串,char *c中。我应该使用哪种预定义的方法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-06 09:10:21

.c_str()返回一个const char*。如果你需要一个可变的版本,你需要自己制作一个副本。

票数 31
EN

Stack Overflow用户

发布于 2012-08-06 09:54:46

代码语言:javascript
运行
复制
vector<char> toVector( const std::string& s ) {
  string s = "apple";  
  vector<char> v(s.size()+1);
  memcpy( &v.front(), s.c_str(), s.size() + 1 );
  return v;
}
vector<char> v = toVector(std::string("apple"));

// what you were looking for (mutable)
char* c = v.data();

.c_str()适用于不可变的。向量将为您管理内存。

票数 9
EN

Stack Overflow用户

发布于 2015-05-15 21:18:33

代码语言:javascript
运行
复制
string name;
char *c_string;

getline(cin, name);

c_string = new char[name.length()];

for (int index = 0; index < name.length(); index++){
    c_string[index] = name[index];
}
c_string[name.length()] = '\0';//add the null terminator at the end of
                              // the char array

我知道这不是预定义的方法,但我认为它可能对某些人有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11821491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档