C++用怎么把一个字符串和一个字符数组拼接到一起

2023-05-16

第一种方法用到:

copy函数:  字符串名.copy(数组名,截取字符长度,从第几个字符的前一位截取);(因为数组arr第一个元素是arr[0])

strlen函数: strlen(数组名);strlen不会读取'\0'

strcat函数:stract(数组名a,数组名b);把b的元素追加到a数组后面

首先是关于字符数组,你定义了一个长度为10的字符数组,但是你只能向里面输入9个字符,最后一个字符是编译器自动补的'\0'。

#include <iostream>
#include <cstring>
using namespace std;



int main() {
// char a[10]="1234567890";//会报错
char a[10]="123456789";
cout<<strlen(a)<<endl;//输出9,因为strlen不会读取'\0'
char b[6];
string s="abcde";
s.copy(b,5);//这里省略了从第几个字符开始,默认为0,即从b[0]开始截取
strcat(a,b);
cout<<a<<endl;//输出123456789abcde
cout<<strlen(a)<<endl;//这里用一次strlen是为了看到连接后a的长度是多少   输出结果是14(9+5=14)
    return 0;
}

第二种方法用到了指针

strcat函数:stract(数组名a,数组名b)

传入数组名就相当于传入数组的首地址,所以可以用指针来指向一个字符串的首地址

#include <iostream>
#include <cstring>
using namespace std;



int main() {

char a[10]="123456789";
char*p="abcde";
strcat(a, p);
cout<<strlen(a)<<endl;//输出结果是14(9+5=14)
    return 0;
}

为什么要单独设置个指针p,直接用

s="abcde";

strcat(a,&s);

不行吗?

不行,因为strcat的函数原型是 int stract(char *dest, const char *src, size_t n);

也就是传入的是指针名

数组名可以看作指向数组首地址的指针名

而string本身是个类

#include <iostream>
#include <cstring>
using namespace std;



int main() {
char b[10]="abcd";
cout<<*b<<endl;//输出a
string s="abcd";
cout<<*(&s)<<endl;//输出abcd

    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++用怎么把一个字符串和一个字符数组拼接到一起 的相关文章

  • 为什么ubantu里的eplise会闪退

    1 闪退的原因有哪一些 xff1f 答 xff1a 计算机是否有足够的空间来运行 Eclipse 如果计算机硬盘空间不足 xff0c 可能会导致程序异常退出 尝试清理硬盘空间或将 Eclipse 安装到另一个磁盘上 xff0c 可能快照开的
  • Mysql分组排序取每组第一条(二种实现方式)

    文章目录 前言前期准备第一种原因分析 xff1a 解决 xff1a 第二种GROUP CONCAT函数解释 前言 记录一下最近的一个需求 xff0c 查不同产品排名第一的图片作为主图 其实一开始想用的是mybatis的级联查询 xff0c
  • Ubuntu16.04 网络配置

    首先选择桥接模式 xff0c 点击 虚拟机 选项 gt 34 设置 34 gt 网络适配器 gt 桥接模式 点击右上角 xff0c 选择edit Connections add gt 选择默认Ethernet gt Create 点击IPv
  • selenium简介及使用

    目录 一 Selenium简介 了解 xff1a Selenium特点 xff1a 二 Selenium的使用 1 创建一个maven项目 2 导入pom xml依赖 3 下载驱动包 一 Selenium简介 了解 xff1a Seleni
  • 链表oj题 (1)

    x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言初阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 讲解初始数据结构链表的三个力扣题 1
  • 库函数之字符函数与字符串函数(下)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 介绍c语言中有关字符函数与字符串
  • 内存操作函数

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 介绍c语言中有关内存操作函数的知
  • 自定义类型之结构体,枚举,联合

    目录 一 结构体1 1 匿名结构体1 2 结构体的自引用1 3 结构体内存大小的计算示例1 普通结构体 示例2 包含 double 类型成员的结构体示例3 嵌套结构体 的内存大小计算示例四 包含数组的结构体为什么要内存对齐 1 4 查看偏移
  • c语言实现通讯录

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 本篇主要介绍如何用c语言实现简易
  • 力扣---两数相加(c语言版)

    x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言初阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 记录一个力扣写了好久的一个问题 金句分
  • 读取JAR包中的文件

    读取JAR包中的文件 读取JAR包中文件方法 xff0c 有三种 通过类加载器获取 span class token class name InputStream span inputStream span class token oper
  • c语言进阶篇_动态内存管理(数组可以自动扩容?)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言初阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 讲解c语言中的动态内存管理知识
  • 对数据结构的初步认识

    前言 牛牛开始更新数据结构的知识了 本专栏后续会分享用c语言实现顺序表 链表 二叉树 栈和队列 排序算法等相关知识 欢迎友友们互相学习 可以私信互相讨论哦 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354
  • 线性表之顺序表(C语言实现)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言初阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 讲解数据结构的入门知识 线性结构
  • 确定不进来看看吗?详细讲解C语言文件操作(示例分析每个函数)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f c语言初阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 讲解c语言中的文件操作 文件的读
  • 带你玩转数据结构-单链表(适合初学者的文章,讲解的很仔细哦)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f C语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 讲解数据结构中链表的知识 链表的
  • (c语言实现)数据结构链表oj题(2)

    前言 x1f388 个人主页 x1f388 初阶牛 x1f43b 推荐专栏 x1f354 x1f35f x1f32f C语言进阶 x1f511 个人信条 x1f335 知行合一 x1f349 本篇简介 gt 分析力扣中有关链表的部分题目 目
  • 在VScode终端中无法运行vue或者新建终端不显示运行窗口的命令的解决办法

    在VScode终端中无法运行vue或者新建终端不显示运行窗口的命令的解决办法 借鉴了前辈的方法 在Windows应用中找到Windows PowerShell xff0c 以管理员运行 xff1a 在命令框输入 xff1a set Exec
  • 冒泡排序超详细讲解C语言

    冒泡排序是一种简单直观的排序算法 它重复地走访过要排序的数列 xff0c 一次比较两个元素 xff0c 如果他们的顺序错误就把他们交换过来 走访数列的工作是重复地进行直到没有再需要交换 xff0c 也就是说该数列已经排序完成 算法步骤 从头
  • MATLAB---线性规划问题求最优解(含例题)

    线性规划是运筹学的基础 xff0c 在现实企业经营中 xff0c 如何有效的利用有限的人力 财力 物力等资源 MATLAB 为方便大家理解 xff0c 这里我们直接用一个例题为大家讲解使用matlab求解线性规划问题 根据上图给出的线性规划

随机推荐