交换字符串数组中的字符串
Swapping strings in a string array
不确定我做得对不对。但是我正在尝试显示输出cat the sideways ran
而不是the cat ran sideways
。
#include <string>
#include <iostream>
using namespace std;
void doSwap(string string1, string string2);
int main() {
string theArray[5] = {"the", "cat", "ran", "sideways"};
int i;
for (i = 0; i < 4; i++) {
doSwap(theArray[i], theArray[i+1]);
cout << theArray[i] << " ";
}
}
void doSwap (string string1, string string2) {
string temp;
temp = string1;
string1 = string2;
string2 = temp;
}
不确定我做得是否正确。
您应该通过引用传递字符串,因为您正在更改它们。按照编写代码的方式,您发送的是要交换的字符串的临时副本,实际上是交换副本,但不是在数组中交换副本。更新代码:
#include <string>
#include <iostream>
using namespace std;
void doSwap(string string1, string string2);
int main() {
string theArray[] = {"the", "cat", "ran", "sideways"};
int i;
for (i = 0; i < (sizeof theArray)/sizeof(string); i++) {
doSwap(theArray[i], theArray[i+1]);
cout << theArray[i] << " ";
}
}
void doSwap (string &string1, string &string2) {
string temp;
temp = string1;
string1 = string2;
string2 = temp;
}
使用<algorithm>
库:可以很容易地完成任务
int main()
{
vector<string> vec { "the", "cat", "ran", "sideways" };
swap_ranges(begin(vec), begin(vec)+1, begin(vec)+1);
swap_ranges(begin(vec)+2, begin(vec)+3, begin(vec)+3);
}
你不需要给自己制造麻烦。
试试这个代码,它会很简单:
#include <string>
#include <iostream>
using namespace std;
void doSwap (int first, int last);
string theArray[5] = {"the", "cat", "ran", "sideways"};
int main() {
int i;
for (i = 2; i <=4; i += 2) {
doSwap((i-2),(i-1));
}
for(i=0;i<5;i++)
cout << theArray[i] << " ";
}
void doSwap (int first, int last){
string tmp;
tmp = theArray[first];
theArray[first] = theArray[last];
theArray[last] = tmp;
}
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组