簡體   English   中英

C ++:用字符串初始化char數組?

[英]C++: initialize char array with a string?

假設我有一個名為垃圾的字符串。

不管有什么垃圾,我都想用它制作一個char數組。 每個元素將是字符串的一個字符。

因此,代碼將類似於:

const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};

但是,這將產生錯誤“初始化時無法將字符串轉換為char”。

正確的方法是什么? 我只想給該死的東西一個字符串,並用它組成一個數組。

C ++ std::string維護一個內部char數組。 您可以使用c_str()成員函數對其進行訪問。

#include <string>
std::string myStr = "Strings! Strings everywhere!";
const char* myCharArr = myStr.c_str();

請記住,您無法修改內部陣列。 如果要這樣做,請制作陣列的副本並修改副本。

您可以只使用garbage.data() ,它已經是指向包含字符串數據的字符數組的第一個元素的指針。

或者這是一個繁重的方法。

#include <string>
std::string temp = "something";
char* myChar = new char(temp.length());
for(int i = 0; i < temp.length(); ++i){
    a[i] = temp[i];
}

我認為您想要的東西要簡單得多:

char arr[] = "some interesting data (garbage)";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM