21xrx.com
2025-04-18 01:38:27 Friday
文章检索 我的文章 写文章
C++中如何将字符串转换为数组
2023-07-01 17:12:54 深夜i     19     0
C++ 字符串 转换 数组

在C++中,字符串和数组是两种不同的数据类型,但有时我们需要将字符串转换成数组,以便对字符串进行更灵活的操作。那么,该如何实现字符串到数组的转换呢?

在C++中,可以使用以下两种方式实现字符串到数组的转换:

1. 使用字符数组

字符数组是由一系列字符组成的数据结构,可以用来表示字符串,同时也可用来表示数组。因此,可以通过将字符串复制到字符数组中,来实现将字符串转换成数组的目的。以下是一段代码示例:

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
  char str[20] = "Hello, world!";
  char arr[20];
  strcpy(arr, str);
  for(int i = 0 ; i < strlen(arr); i++)
  {
    cout << arr[i] << " ";
  }
  return 0;
}

代码中,我们定义了一个字符串 str,一个字符数组 arr,并使用 strcpy 将字符串 str 中的字符复制到字符数组 arr 中。最后,使用 for 循环打印字符数组 arr 中的每一个元素。输出结果为:

H e l l o ,  w o r l d !

可以看到,字符串 str 已经成功转换成了字符数组 arr。

2. 使用 stringstream

C++中,stringstream是一个字符串流对象,可以像流一样读入和输出字符串。通过将字符串输入到 stringstream 对象中,并利用循环将数据从 stringstream 对象中读入到数组中,即可将字符串转换成数组。以下是代码示例:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(){
  string str = "1, 2, 3, 4, 5";
  stringstream s(str);
  int arr[5];
  char c;
  for (int i = 0; i < 5; i++){
    s >> arr[i] >> c;
    cout << arr[i] << " ";
  }
}

输出结果为:

1 2 3 4 5

代码中,我们将字符串 str 输入到 stringstream 对象 s 中,并利用循环将 s 中的数据输入到数组 arr 中,每次读取后使用空格分隔。循环中的第一行代码将从 stringstream 对象 s 中读取一个整数并赋值给数组 arr 中的一个元素,第二行代码读取空格并忽略。最后,使用 for 循环打印数组 arr 中的每一个元素。

在C++中,以上两种方式均可实现将字符串转换成数组的功能。需根据自己的需要选择不同的方式来实现。

  
  

评论区

请求出错了