亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在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 關注
  • 1507 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號