主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C++

C++ 基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

C++ 字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

C++ 函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

C++ 面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

C++ 高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

C++ 字符串连接


上一章 下一章

字符串连接是指将一个元素添加到现有元素的过程。在此上下文中,字符串连接是指将两个(或更多)字符串合并的方法。因此,结果字符串是初始字符串与附加字符串的组合。

在 C++ 中有几种方法可以连接字符串,其中包括:

  • 使用 string::append() 函数
  • 使用 + 运算符
  • 使用 strcat() 函数处理 C 风格字符串
  • 使用 for 循环
  • 使用 while 循环
  • 使用基于范围的循环
  • 使用继承
  • 使用带有面向对象编程(OOP)特性的友元函数

下面将详细介绍这些方法。让我们深入了解这些概念。

使用 string::append() 函数进行字符串连接

string 是在 <string> 头文件中定义的一个类,并且 append() 函数是该类的一个继承方法。此方法用于将给定的字符串附加到初始字符串上。

语法

使用 append() 方法连接字符串的语法如下:

initial_string.append(new_string);
initial_string.append("this is new");

参数

string::append() 函数接受一个字符串作为参数。这个字符串可以显式传递或者作为一个对象传递。

append() 函数示例

下面的示例代码用于使用 append() 方法连接字符串:

#include <iostream>
using namespace std;

int main() {
   string initial_string("I Love TP.");
   string new_string(" I am new here.");

   // 使用带有对象参数的 append 函数
   initial_string.append(new_string);

   // 使用带有显式字符串的 append 函数
   initial_string.append(" Could you help me?");

   cout << initial_string << endl;
   return 0;
}

输出

I Love TP. I am new here. Could you help me?

使用 + 运算符进行字符串连接

将字符串相加的最简单方法之一就是使用 + 运算符对两个或多个字符串进行操作。这可以在原地完成(即不创建新的字符串),或者在一个新的字符串对象上进行。这是 C++ 编程语言较新的一项特性。

语法

使用 + 运算符连接字符串的语法如下:

new_string = initial_string + added_string;
initial_string += added_string;

在这里,新的字符串可以在原地添加,也可以通过创建一个新的字符串对象来添加。

示例

下面的示例代码用于使用 + 运算符连接字符串:

#include <iostream>
using namespace std;

int main() {
   string initial_string("I Love TP.");
   string new_string(" I am new here.");

   string a = "Hey !!! " + initial_string;
   // 使用新的字符串对象

   a += new_string;
   // 原地添加

   a += " Could you help me? ";

   cout << a << endl;
   return 0;
}

输出

Hey !!! I Love TP. I am new here. Could you help me?

使用 for 循环进行字符串连接

我们可以使用一个简单的 for 循环从新字符串的开始处到结束处迭代,并且每次迭代都将该字符添加到初始字符串中。这可以在原地完成,或者使用一个新的字符串对象。这种类型的连接在 C 风格字符串(即字符数组)中也是可能的。

语法

使用 for 循环从字符串的开头到结尾连接字符串的语法如下:

for(int i=0; i<s.length(); i++){
   initial += s[i];
}

示例

下面的示例代码用于使用 for 循环从字符串的开头到结尾连接字符串:

#include <iostream>
using namespace std;

int main(){
   string initial_string("I Love TP.");
   string new_string(" I am new here.");

   for(int i=0; i<new_string.size(); i++){
      initial_string += new_string[i];
   }
   // 使用 for 循环遍历 new_string

   cout << initial_string << endl;
   return 0;
}

输出

I Love TP. I am new here.

使用 while 循环进行字符串连接

我们还可以使用一个简单的 while 循环,直到到达字符串的末尾,并且在每次迭代时都将相应的字符添加到初始字符串中。这可以在原地完成,或者使用一个新的字符串对象。这种类型的连接在 C 风格字符串(即字符数组)中也是可能的。

语法

使用 while 循环从字符串的开头到结尾连接字符串的语法如下:

for(int i=0; i<s.length(); i++){
   initial += s[i];
}

示例

下面的示例代码用于使用 while 循环从字符串的开头到结尾连接字符串:

#include <iostream>
using namespace std;

int main() {
   string initial_string("I Love TP.");
   string new_string(" I am new here.");

   int i = 0;
   while(new_string[i] != '\0'){
      initial_string += new_string[i];
      i++;
   }
   // 使用 while 循环遍历 new_string

   cout << initial_string << endl;
   return 0;
}

使用基于范围的循环进行字符串连接

我们还可以使用一个基于范围的循环,它会自动遍历整个字符串并且将每个字符添加到初始字符串中。这可以在原地完成,或者使用一个新的字符串对象。

语法

使用基于范围的循环从字符串的开头到结尾连接字符串的语法如下:

for(char c : s){
   initial += c;
}

示例

下面的示例代码用于使用基于范围的循环从字符串的开头到结尾连接字符串:

#include <iostream>
using namespace std;

int main() {
   string initial_string("I Love TP.");
   string new_string(" I am new here.");

   for(char c : new_string){
      initial_string += c;
   }
   // 使用基于范围的循环进行连接

   cout << initial_string << endl;
   return 0;
}

输出

I Love TP. I am new here.

使用 strcat() 函数进行字符串连接

我们可以使用 strcat() 函数在 C++ 中连接字符串。但是,此方法不适用于字符串对象,它只适用于 C 风格字符串,即字符数组。此方法定义在 <string.h> 头文件中。

语法

使用 strcat() 方法连接字符串的语法如下:

strcat(s1, s2);

参数

在这里,s1 和 s2 是作为参数传递给 strcat() 方法的两个字符数组(即字符串)。

示例

下面的示例代码用于使用 strcat() 方法连接字符串:

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

int main(){
   char s1[] = "I love ";
   char s2[] = " TP. Could you help me? ";

   // 使用 strcat 函数连接
   // 结果存储在 s1 中

   strcat(s1, s2);
   cout << s1 << endl;
   return 0;
}

输出

I love  TP. Could you help me?

使用继承进行字符串连接

我们可以使用 strcat() 函数在 C++ 中连接字符串。但是,此方法不适用于字符串对象,它只适用于 C 风格字符串,即字符数组。此方法定义在 <string.h> 头文件中。

语法

使用继承方法在面向对象编程(OOP)概念中连接字符串的语法如下:

strcat(s1, s2);

示例

下面的示例代码用于使用继承方法在面向对象编程(OOP)概念中连接字符串:

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

// 父类
class parent { 
   public:
      virtual string concatenate(string s1, string s2) = 0;
      // 创建一个虚方法以便继承
}; 

// 子类
class child : public parent { 
   public: 
      string concatenate (string s1, string s2){
         s1 += s2;
         // 使用 + 运算符连接字符串
         return s1;
      } 
}; 

int main() { 
   child ch1;
   cout << ch1.concatenate ("I love ", "TP !!!"); 

   return 0; 
}

输出

I love TP !!!

使用带有面向对象编程(OOP)特性的友元函数进行字符串连接

友元类可以访问其他类中作为友元声明的私有和受保护成员。有时,允许特定类访问其他类的私有和受保护成员是有用的。

因此,我们利用这个友元类来声明一个辅助方法,然后使用 strcat() 函数处理 C 风格字符串。

语法

使用带有 C++ 中的友元方法连接字符串的语法如下:

class A {
   string s1 = [value];
   string s2 = [value];
   friend void helper(A obj);
}
helper(A) {
   strcat(obj.s1, obj.s2);
};

示例

下面的示例代码用于使用带有 C++ 中的友元方法连接字符串:

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

// 连接类
class concatenate { 
   public: 
      char s1[20] = "I love TP !!!";
      char s2[20] = "Hey... ";

      friend void helper(concatenate par1);  
}; 

void helper (concatenate par1) { 
   // 将参数传递给连接
   strcat (par1.s2, par1.s1); 

   cout << par1.s2; 
} 

int main() { 

   // 创建类的对象
   concatenate par1; 

   // 将此对象传递给辅助函数
   helper(par1); 

   return 0; 
}

输出

Hey... I love TP !!!
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图