c++ 字符串转为数组
时间: 2024-03-08 13:44:25 浏览: 116
在C++中,可以使用多种方法将字符串转换为数组。以下是一种常见的方法:
1. 使用字符数组:可以将字符串逐个字符地复制到字符数组中。首先,需要创建一个足够大的字符数组来存储字符串的每个字符,然后使用循环将字符串中的字符逐个复制到数组中。最后,可以使用该字符数组进行后续操作。
示例代码如下:
```cpp
#include <iostream>
#include <cstring>
int main() {
std::string str = "Hello";
char arr[6]; // 需要足够大的数组来存储字符串及结尾的空字符 '\0'
// 将字符串复制到字符数组中
std::strcpy(arr, str.c_str());
// 打印字符数组
for (int i = 0; i < std::strlen(arr); i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
输出结果为:H e l l o
相关问题
C++,将字符串转为字符数组
在 C 中,字符串本质上就是一个以 null 字符 (\0) 结尾的字符数组。因此,将字符串转为字符数组只需要将字符串变量名作为字符数组名即可。
例如,假设有一个字符串变量 str:
```
char str[] = "Hello, world!";
```
可以直接将它作为字符数组使用:
```
printf("%c", str[0]); // 输出字符 'H'
```
C++ 将字符串数组中的每一个元素转为string类型
在C++中,将字符数组转换为`std::string`类型的每个元素,通常涉及到遍历数组并逐个创建新的`std::string`对象。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
// 假设我们有一个字符数组
char strArray[] = {"Hello", "World", "!", ""}; // 注意最后一个空字符串
// 定义一个函数,将字符数组中的元素转换为string
std::vector<std::string> convertCharArrayToStrings(char* arr, int size) {
std::vector<std::string> stringVec;
for (int i = 0; i < size; ++i) {
if (arr[i] != '\0') { // 避免空终止符
stringVec.push_back(std::string(arr + i)); // 使用指针加上偏移获取字符串
}
}
return stringVec;
}
int main() {
std::vector<std::string> result = convertCharArrayToStrings(strArray, sizeof(strArray) / sizeof(strArray[0]) - 1); // 减一是因为数组结束于空字符
for (const auto& s : result) {
std::cout << s << std::endl;
}
return 0;
}
```
在这个例子中,我们首先创建了一个`std::vector<std::string>`来存储结果。然后遍历字符数组,跳过空字符`\0`,将非空字符部分转换成`std::string`并添加到`vector`中。
阅读全文