C++轻松实现字符串与字符数组的相互转换

 更新时间:2025年03月19日 10:13:59   作者:Lion 莱恩呀  
本文详细介绍了如何在C++中通过c_str()和strcpy()函数将字符串转换为字符数组,以及使用for循环、+运算符、重载=和内置构造函数将字符数组转换为字符串的方法,需要的朋友可以参考下

引言

本文重点介绍在 C++ 中将字符串转换为 char 数组和将 char 数组转换为字符串的不同方法。

一、将字符串转换为 char 数组

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

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

1.1、C++ 中的 c_str()和 strcpy()函数

C++ 函数c_str()以及 C++ 字符串函数strcpy()可用于轻松地将字符串转换为字符数组。

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

语法:

string-name.c_str();
  • 首先使用 c_str() 方法来获取字符串的所有字符以及终止 null 字符。
  • 此外,声明一个 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; 
}

1.2、使用 for 循环中的字符串到字符数组的转换

为了将 char 数组转换为字符串,可以使用 C++ for 循环。

  • 首先创建一个 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; 
}

二、将 char 数组转换为字符串

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

  • “+”运算符。
  • C++ 重载“=”运算符。
  • C++ 内置构造函数。

2.1、C++ 运算符 ‘+’

C++提供了将数据项连接或添加到变量的功能:'+' operator

  • 创建一个新的空字符串来存储结果。
  • 接下来,使用 for 循环遍历输入 char 数组。
  • 在遍历数组的过程中,使用 ‘+’ 运算符将字符连接到字符串。

示例:

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


int main() 
{ 
	char arr[] = { 'L', 'I', 'O', 'N', 'L', 'O', 'N', 'G'}; 
	
	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:
LIONLONG

2.2、C++ 重载 ‘=’ 运算符

C++具有重载的概念,它使操作员执行基本或默认操作以外的其他操作。

  • 创建一个新的空字符串。
  • 使用 '=' operator overload 将数据项逐个字符存储到新创建的空字符串中。

示例:

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


int main() 
{ 
	char arr[] = { 'L', 'I', 'O', 'N', 'L', 'O', 'N', 'G'}; 
	
	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:
LIONLONG

2.3、C++ 字符串内置构造函数

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

语法:

string string-name(char array-name);

此构造函数采用以 null 字符结尾的字符序列作为输入参数。

注意:这只能在整个程序中声明字符串时使用。

示例:

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

int main() 
{ 
	char arr[] = { 'L', 'I', 'O', 'N', 'L', 'O', 'N', 'G'}; 
	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:
LIONLONG

三、总结

在本文中了解了在 C++ 中将字符串转换为 char 数组的各种技术,反之亦然。

到此这篇关于C++轻松实现字符串与字符数组的相互转换的文章就介绍到这了,更多相关C++字符串与字符数组互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Qt实现线程与定时器的方法

    Qt实现线程与定时器的方法

    本文主要介绍了Qt实现线程与定时器的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C++中正则表达式的使用方法详解

    C++中正则表达式的使用方法详解

    几乎所有的编程语言都支持正则表达式。 C++从C++11开始直接支持正则表达式。除了编程语言之外,大多数文本处理程序都使用正则表达式。本文将探讨正则表达式的一般细节以及C++编程方面的细节,感兴趣的可以学习一下
    2022-05-05
  • c语言中缺省参数的类型总结

    c语言中缺省参数的类型总结

    在本篇文章里小编给大家整理了一篇关于c语言中缺省参数的类型总结内容,有兴趣的朋友们可以跟着学习参考下。
    2021-09-09
  • C++实现骑士走棋盘算法

    C++实现骑士走棋盘算法

    这篇文章主要为大家详细介绍了C++实现骑士走棋盘算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C++函数指针与指针函数有哪些关系和区别

    C++函数指针与指针函数有哪些关系和区别

    函数指针是一个指针变量,它可以存储函数的地址,然后使用函数指针,这篇文章主要介绍了C++中函数指针与指针函数有哪些关系和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-08-08
  • C++实现中缀转后缀的示例详解

    C++实现中缀转后缀的示例详解

    这篇文章主要为大家详细介绍了如何利用C++实现中缀转后缀的问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • C语言实现随机生成6位数密码

    C语言实现随机生成6位数密码

    这篇文章主要为大家详细介绍了如何使用C语言实现一个简单而实用的随机密码生成器,该生成器将生成包含字母、数字和特殊字符的随机密码,有需要的小伙伴可以参考下
    2023-11-11
  • C++实现LeetCode(166.分数转循环小数)

    C++实现LeetCode(166.分数转循环小数)

    这篇文章主要介绍了C++实现LeetCode(166.分数转循环小数)
    2021-07-07
  • C语言中的指针 初阶

    C语言中的指针 初阶

    这篇文章主要介绍的是关于初级阶段学习C语言中指针的一些内容,那就是指针是什么?简单的说,就是通过它能找到以它为地址的内存单元。下面文章我们就来详细介绍该内容,需要的朋友可以参考一下
    2021-10-10
  • C/C++中关于字符串的常见函数操作大全

    C/C++中关于字符串的常见函数操作大全

    这篇文章主要介绍了C/C++中关于字符串的常见函数操作,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论