为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C ++中将字符串转换为char数组?

如何在C ++中将字符串转换为char数组?

C++
HUWWW 2019-11-11 10:54:20
我想转换string为chararray但不能char*。我知道如何将字符串转换为char*(通过使用malloc或在代码中发布的方式)-但这不是我想要的。我只是想转换string为char[size]数组。可能吗?#include <iostream>#include <string>#include <stdio.h>using namespace std;int main(){    // char to string    char tab[4];    tab[0] = 'c';    tab[1] = 'a';    tab[2] = 't';    tab[3] = '\0';    string tmp(tab);    cout << tmp << "\n";    // string to char* - but thats not what I want    char *c = const_cast<char*>(tmp.c_str());    cout << c << "\n";    //string to char    char tab2[1024];    // ?    return 0;}
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

好的,令我震惊的是,现在轮到我了,没人能给出一个很好的答案。有两种情况;


一个恒定的字符数组是配不上你,让你一起去,


const char *array = tmp.c_str();

或者您需要修改 char数组,使常量不正确,然后使用


char *array = &tmp[0];

两者都是作业,大部分时间正是您所需要的,如果您确实需要新的副本,请遵循其他同事的答案。


查看完整回答
反对 回复 2019-11-11
?
当年话下

TA贡献1890条经验 获得超9个赞

str.copy(cstr, str.length()+1); // since C++11

cstr[str.copy(cstr, str.length())] = '\0';  // before C++11

cstr[str.copy(cstr, sizeof(cstr)-1)] = '\0';  // before C++11 (safe)

最好在C ++中避免使用C,因此应该选择std :: string :: copy而不是strcpy。


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 1474 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信