如何将一个字符串转换为一个字符数组中的字符大小的字符数组?
问题描述:
我已经找到并阅读了一些类似的问题, ,但遗憾的是我无法找到解决方案。 我只是想将一个字符串转换为字符串中字母大小的字符数组。 例子:如何将一个字符串转换为一个字符数组中的字符大小的字符数组?
string test = "hello";
字符数组:
testArr[0]: 'h';
testArr[1]: 'e';
testArr[2]: 'l';
testArr[3]: 'l';
testArr[4]: 'o';
在Java中这将是非常容易的,但在C++中,它看起来很复杂。
答
类字符串具有返回常量字符串的成员函数c_str()
。所以简单地说:
std::string test = "hello";
char* cstrTest = new char[test.length() + 1];
strcpy(cstrTest, test.c_str());
std::cout << cstrTest << std::endl;
delete[] cstrTest;
-
如果你只是想不断的字符串,而不会改变它(常量)简单地说:
const char* cTest = test.c_str(); cout << cTest << endl;
+1
啊没关系,它的工作原理。谢谢! – Curbe
如果你的字符数组是一个'的std ::矢量'或类似的,你可以使用带迭代器对的构造函数重载。例如:'std :: vector testArr(test.begin(),test.end())' –
WhiZTiM
'std :: string'已经包含一个C风格的'char'数组。你可以使用'test.c_str()'得到一个指向它的指针。 –
[C++将字符串转换为字符数组]的可能重复(https://*.com/questions/13343013/c-convert-strings-to-char-arrays) – DMishra