c++交换两个string
时间: 2023-07-19 17:28:24 浏览: 86
您可以使用 std::swap() 函数来交换两个 string 变量,如下所示:
```c++
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
std::cout << "Before swapping: " << std::endl;
std::cout << "str1: " << str1 << std::endl;
std::cout << "str2: " << str2 << std::endl;
// 交换两个 string 变量
std::swap(str1, str2);
std::cout << "After swapping: " << std::endl;
std::cout << "str1: " << str1 << std::endl;
std::cout << "str2: " << str2 << std::endl;
return 0;
}
```
输出结果为:
```
Before swapping:
str1: Hello
str2: World
After swapping:
str1: World
str2: Hello
```
相关问题
C++交换两个字符串
在C++中,可以使用标准库中的`std::swap()`函数或者直接使用赋值操作来交换两个字符串。这里我们介绍两种方法:
1. 使用`std::swap()`:
```cpp
#include <string>
using namespace std;
void swapStrings(string& str1, string& str2) {
// 通过引用传递,不需要临时变量
swap(str1, str2);
}
```
在这个例子中,`str1`和`str2`作为引用传递给`swapStrings()`函数,`std::swap()`会直接交换它们的内容。
2. 直接赋值:
```cpp
#include <iostream>
using namespace std;
void swapStringsWithoutLibrary(string& str1, string& str2) {
// 创建临时字符串存储str2的内容
string temp = str2;
// 将str2的内容赋给str1
str2 = str1;
// 最后将str1的内容赋给temp
str1 = temp;
}
```
这种方法需要一个临时字符串来存储其中一个字符串的内容,再分别将其内容赋给另一个字符串。
c++交换两个结构体数组
要交换两个结构体数组,可以使用一个临时的结构体数组作为中介。首先将第一个结构体数组的值复制到临时数组中,然后将第二个结构体数组的值复制到第一个数组中,最后将临时数组的值复制到第二个数组中。这样就完成了两个结构体数组的交换。
具体步骤如下:
1. 创建一个临时的结构体数组temp,与要交换的两个数组的大小相同。
2. 将第一个数组的值复制到temp数组中。
3. 将第二个数组的值复制到第一个数组中。
4. 将temp数组的值复制到第二个数组中。
代码示例:
```C++
#include <iostream>
using namespace std;
struct Stu {
string name;
int age;
double score;
};
void swapArrays(Stu array1[], Stu array2[], int size) {
Stu temp[size];
for (int i = 0; i < size; i++) {
temp[i] = array1[i];
array1[i] = array2[i];
array2[i] = temp[i];
}
}
int main() {
Stu arr1[3] = {{"张三", 25, 87.5}, {"李四", 24, 92.4}, {"王五", 27, 78.2}};
Stu arr2[3] = {{"赵六", 35, 90.1}, {"孙七", 22, 85.3}, {"钱八", 29, 93.7}};
cout << "交换前:" << endl;
cout << "数组1:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr1[i].name << " 年龄:" << arr1[i].age << " 分数:" << arr1[i].score << endl;
}
cout << endl;
cout << "数组2:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr2[i].name << " 年龄:" << arr2[i].age << " 分数:" << arr2[i].score << endl;
}
cout << endl;
swapArrays(arr1, arr2, 3);
cout << "交换后:" << endl;
cout << "数组1:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr1[i].name << " 年龄:" << arr1[i].age << " 分数:" << arr1[i].score << endl;
}
cout << endl;
cout << "数组2:" << endl;
for (int i = 0; i < 3; i++) {
cout << "姓名:" << arr2[i].name << " 年龄:" << arr2[i].age << " 分数:" << arr2[i].score << endl;
}
cout << endl;
return 0;
}
```
阅读全文