两个字符串交换内容c++
时间: 2023-12-24 08:01:54 浏览: 221
可以使用 std::swap() 函数来交换两个字符串的内容。示例代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "hello";
string str2 = "world";
cout << "Before swapping: " << endl;
cout << "str1 = " << str1 << endl;
cout << "str2 = " << str2 << endl;
swap(str1, str2);
cout << "After swapping: " << endl;
cout << "str1 = " << str1 << endl;
cout << "str2 = " << str2 << endl;
return 0;
}
```
输出结果:
```
Before swapping:
str1 = hello
str2 = world
After swapping:
str1 = world
str2 = hello
```
相关问题
字符串交换位置c++
在C++中,交换两个字符串的位置通常是通过创建临时变量、使用标准库提供的算法,或者是直接对字符数组进行操作。这里我将展示三种常见的方法:
1. **使用临时变量**:
```cpp
#include <string>
std::string str1 = "Hello";
std::string str2 = "World";
std::string temp = str1; // 创建临时存储str1
str1 = str2; // str1现在指向str2的内容
str2 = temp; // str2现在指向temp,即原str1的内容
```
2. **使用`std::swap`函数**:
```cpp
#include <algorithm> // 引入swap函数
std::string str1 = "Hello";
std::string str2 = "World";
std::swap(str1, str2); // 直接交换两个字符串引用指向的内容
```
3. **直接修改字符数组(适用于字符指针的情况)**:
```cpp
char str1[] = "Hello";
char str2[] = "World";
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
char temp[len1 + len2]; // 创建足够大的临时数组
// 把第一个字符串复制到临时数组
memcpy(temp, str1, len1);
// 把第二个字符串连接到临时数组的剩余部分
memmove(temp+len1, str2, len2);
// 将str1和str2的内容更新为临时数组内容
str1[0] = '\0'; str2[0] = '\0';
strcpy(str1, temp);
strcpy(str2, temp+len1);
```
请注意,如果只是简单地想交换两个字符串变量的值,上述第三种方法可能会有风险,因为原始字符串的内存会保持不变。在这种情况下,应该考虑使用前两种方法。
交换两个字符串内容的函数方法c++
可以使用以下代码交换两个字符串的内容:
```c++
#include <iostream>
#include <string>
using namespace std;
void swapString(string& str1, string& str2) {
string temp = str1;
str1 = str2;
str2 = temp;
}
int main() {
string str1 = "hello";
string str2 = "world";
cout << "Before swapping: " << endl;
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
swapString(str1, str2);
cout << "After swapping: " << endl;
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
return 0;
}
```
运行结果:
```
Before swapping:
str1: hello
str2: world
After swapping:
str1: world
str2: hello
```
在这个例子中,我们定义了一个名为 `swapString` 的函数,该函数接受两个字符串的引用作为参数。函数内部定义了一个 `temp` 字符串,将 `str1` 的值复制给 `temp`,然后将 `str2` 的值赋给 `str1`,最后将 `temp` 的值赋给 `str2`,完成了两个字符串的内容交换。
阅读全文