继续测试两个字符串可以交换吗?
时间: 2023-09-30 22:10:44 浏览: 73
字符串互换
两个字符串也可以使用指针传递或引用传递来进行交换,不过需要注意的是,字符串在C++中是以字符数组的形式进行存储的,因此需要使用字符数组类型作为参数进行传递和交换。
以下是使用指针传递和引用传递实现两个字符串交换的代码:
使用指针传递:
```c++
void strSwap(char* a, char* b) {
char temp[100];
strcpy(temp, a);
strcpy(a, b);
strcpy(b, temp);
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
strSwap(str1, str2);
cout << "str1 = " << str1 << ", str2 = " << str2 << endl;
return 0;
}
```
使用引用传递:
```c++
void strSwap(char (&a)[100], char (&b)[100]) {
char temp[100];
strcpy(temp, a);
strcpy(a, b);
strcpy(b, temp);
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
strSwap(str1, str2);
cout << "str1 = " << str1 << ", str2 = " << str2 << endl;
return 0;
}
```
两个函数的实现原理都是一样的,都是通过一个中间变量来实现两个字符串的交换。不同之处在于,使用指针传递需要在函数调用时传递字符数组的地址,而使用引用传递则直接传递字符数组本身。
阅读全文