c++ string 转数组
时间: 2023-09-06 11:11:10 浏览: 51
你可以使用`std::string`类的`c_str()`方法将C++中的`std::string`对象转换为C风格的字符数组。这样做的目的是为了与需要以C风格字符串作为参数的函数兼容。
下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string myString = "Hello, World!";
// 将std::string转换为C风格的字符数组
const char* myCharArray = myString.c_str();
// 打印C风格的字符数组
std::cout << myCharArray << std::endl;
return 0;
}
```
在这个示例中,我们使用`c_str()`方法将`myString`转换为一个指向字符数组的指针`myCharArray`。然后,我们使用`std::cout`打印出这个字符数组。
请注意,使用`c_str()`方法得到的字符数组是只读的,如果尝试修改它的内容会导致未定义的行为。
相关问题
c++ string转数组
可以使用 `strcpy` 或者 `memcpy` 函数将 C++ 的 `std::string` 类型转换为字符数组。
例如:
```c++
#include <iostream>
#include <string>
#include <cstring>
int main() {
std::string str = "hello world";
char arr[str.size()];
strcpy(arr, str.c_str());
std::cout << arr << std::endl;
return 0;
}
```
其中,`str.c_str()` 返回的是 `const char*` 类型,表示 `std::string` 对象中存储的字符数组的首地址。然后使用 `strcpy` 函数将字符数组复制到 `arr` 中。
另外需要注意的是,字符数组的大小需要预先定义,不能使用变量,因为字符数组的大小必须是常量表达式。
c++ string逗号分隔转数组
你可以使用 `std::stringstream` 和 `std::getline` 将逗号分隔的字符串转换为数组。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main() {
std::string str = "1,2,3,4,5";
std::vector<int> nums;
std::stringstream ss(str);
std::string token;
while (std::getline(ss, token, ',')) {
nums.push_back(std::stoi(token));
}
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
在上面的代码中,我们先定义了一个字符串 `str`,它包含了逗号分隔的数字。然后我们定义了一个 `std::vector<int>` 类型的数组 `nums`,用来存储转换后的数字。接着,我们使用 `std::stringstream` 将字符串 `str` 传入,并使用 `std::getline` 函数按照逗号分隔符将字符串分割成多个子串,存储在 `token` 变量中。最后,我们将 `token` 转换为 `int` 类型,并将其添加到数组 `nums` 中。
最后,我们遍历数组 `nums` 并输出每个元素的值。