在C++中将String转换为Char数组并将Char数组转换为String

时间:2020-02-23 14:29:55  来源:igfitidea点击:

在本文中,我们将重点介绍在C++中将String转换为char数组和将char数组转换为String的不同方法。
处理字符串数据时,我们可能需要将字符串数据项转换为字符数组,反之亦然。
本教程将帮助您完全解决该问题。

在C++中将字符串转换为Char数组

C++为我们提供了以下将字符串转换为char数组的技术:

  • 使用c_str()和strcpy()函数
  • 使用for循环

1. C++中的c_str()和strcpy()函数

C++c_str()函数和C++ Stringstrcpy()函数可用于轻松地将字符串转换为char数组。

c_str()方法表示字符串数组中的字符序列,后跟一个空字符('\ 0')。
它返回指向该字符串的空指针。

语法:

string-name.c_str();

  • 首先,我们使用c_str()方法获取字符串的所有字符以及一个终止的空字符。

  • 此外,我们声明一个char类型的空数组来存储结果,即将字符串转换为char数组的结果。

  • 最后,我们使用strcpy()方法将c_str()方法生成的字符序列复制到空char数组中。

例:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
	 
	string str = "";
	cout<<"Enter the string:\n";
	
	cin>>str;

	char arr[str.length() + 1]; 

	strcpy(arr, str.c_str()); 
  cout<<"String to char array conversion:\n";
	for (int i = 0; i < str.length(); i++) 
		cout << arr[i]; 

	return 0; 
} 

输出:

Enter the string:
theitroad
String to char array conversion:
theitroad

2.在C++中使用for循环将字符串转换为Char数组

为了将char数组转换为字符串,我们可以轻松地将C++用于循环。

  • 最初,我们创建一个类型为char的空数组
  • 之后,我们遍历输入字符串
  • 在迭代时,我们将字符存储到char数组中

例:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
	 
	string str = "";
	cout<<"Enter the string:\n";
	
	cin>>str;

	char arr[str.length() + 1]; 
  cout<<"String to char array conversion:\n";
  for (int x = 0; x < sizeof(arr); x++) { 
      arr[x] = str[x]; 
      cout << arr[x]; 
  } 

	return 0; 
} 

输出:

Enter the string:
theitroad
String to char array conversion:
theitroad

在C++中将Char数组转换为字符串

提到的技术可用于在C++中将char数组转换为字符串:

  • " +"运算符
  • C++重载了" ="运算符
  • C++内置构造函数

1. C++" +"运算符

C++为我们提供了" +"运算符,以将数据项连接或者添加到变量。

  • 我们创建一个新的空字符串来存储结果。

  • 首先,我们使用for循环遍历输入char数组。

  • 在遍历数组的过程中,我们使用" +"运算符将字符连接到字符串。

例:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
	char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; 
	
	int size_arr = sizeof(arr)/sizeof(char); 
	string str = ""; 
	for (int x = 0; x < size_arr; x++) { 
		str = str + arr[x]; 
	} 
	cout<<"Converted char array to string:\n";
	cout << str << endl; 
	return 0; 
} 

输出:

Converted char array to string:
theitroad

2. C++重载了" ="运算符

C++具有重载的概念,它使运算符可以执行除基本或者默认操作之外的其他操作。

  • 最初,我们创建一个新的空字符串。

  • 我们使用重载的" ="运算符将数据项逐个字符存储到新创建的空字符串中。

例:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
	char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; 
	
	int size_arr = sizeof(arr)/sizeof(char); 
	string str = ""; 
	str = arr;
	cout<<"Converted char array to string:\n";
	cout << str << endl; 
	return 0; 
} 

输出:

Converted char array to string:
theitroad

3.C++ String内置构造函数

在将char数组转换为字符串的上下文中,我们可以使用C++字符串构造函数。

语法:

string string-name(char array-name);

此构造函数将以空字符结尾的字符序列作为输入参数。

注意:这个"构造函数字符串string()"只能在整个程序中声明字符串时使用。

例:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
	char arr[] = { 'J', 'O', 'U', 'R', 'N', 'A', 'L', 'D', 'E', 'V' }; 
	int size_arr = sizeof(arr)/sizeof(char); 
	string str(arr);
	cout<<"Converted char array to string:\n";
	cout <<str<< endl; 
	return 0; 
} 

输出:

Converted char array to string:
theitroad