21xrx.com
2024-11-05 17:27:46 Tuesday
登录
文章检索 我的文章 写文章
C++如何交换两个字符串
2023-07-07 17:44:35 深夜i     --     --
C++ 交换 两个字符串

在C++中,交换两个字符串可以采用以下几种方式:

1.使用swap函数

C++中的string类已经封装了swap函数,可以直接交换两个字符串。示例代码如下:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str1 = "hello";

  string str2 = "world";

  cout << "before swap: str1=" << str1 << ", str2=" << str2 << endl;

  str1.swap(str2);

  cout << "after swap: str1=" << str1 << ", str2=" << str2 << endl;

  return 0;

}

2.使用自定义函数

使用自定义函数,交换两个字符串的实现依赖于临时变量。示例代码如下:


#include <iostream>

#include <string>

using namespace std;

void swap(string& str1, string& str2)

  string temp = str1;

  str1 = str2;

  str2 = temp;

int main()

{

  string str1 = "hello";

  string str2 = "world";

  cout << "before swap: str1=" << str1 << ", str2=" << str2 << endl;

  swap(str1, str2);

  cout << "after swap: str1=" << str1 << ", str2=" << str2 << endl;

  return 0;

}

3.使用指针

使用指针,交换两个字符串的实现依然是依赖于临时变量。示例代码如下:


#include <iostream>

#include <string>

using namespace std;

void swap(string* str1, string* str2)

{

  string temp = *str1;

  *str1 = *str2;

  *str2 = temp;

}

int main()

{

  string str1 = "hello";

  string str2 = "world";

  cout << "before swap: str1=" << str1 << ", str2=" << str2 << endl;

  swap(&str1, &str2);

  cout << "after swap: str1=" << str1 << ", str2=" << str2 << endl;

  return 0;

}

无论使用哪一种方式,交换两个字符串的本质都是交换两个字符串所指向的内存地址。因此,交换完之后,两个字符串的内容也会被交换。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复