当前位置:首页 » 《我的小黑屋》 » 正文

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

17 人参与  2024年10月09日 13:20  分类 : 《我的小黑屋》  评论

点击全文阅读


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

引言一、将字符串转换为 char 数组1.1、C++ 中的 c_str()和 strcpy()函数1.2、使用 for 循环中的字符串到字符数组的转换 二、将 char 数组转换为字符串2.1、C++ 运算符 '+'2.2、C++ 重载 '=' 运算符2.3、C++ 字符串内置构造函数 三、总结

引言

本文重点介绍在 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_str()方法。

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/169469.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1