[英]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.