冒泡 对数组中的字符串进行排序
Bubble Sorting a string in an Array
我正在尝试使用气泡排序对数组的 LastName 属性(在结构 StudentRecord 下,因此名称)进行气泡排序。但我在这样做时遇到了麻烦。
我收到错误(我正在使用 MinGW 进行编译):
Invalid array assignment
这是我的代码:
void option2 (StudentRecord student[], int n)
{
int pass = 1;
bool done = false;
StudentRecord temp;
while (!done && pass <= n-1)
{
done = true;
for (int i = n-1; i >= pass; i--)
{
if (student[i].lastName < student[i-1].lastName)
{
temp.lastName = student[i].lastName;
student[i].lastName = student[i-1].lastName;
student[i-1].lastName = temp.lastName;
done = false;
}
}
pass++;
}
}
看起来lastName
是一个字符数组。
您不能将整个数组分配给彼此;您需要使用strcpy()
(#include <cstring>
)将一个数组复制到另一个数组。此外,将<
与字符数组一起使用将导致比较每个数组中第一个元素的内存地址,而不是整个字符串;为此使用 strcmp
(返回 0 IFF<第一个参数按字典顺序><第二个参数)。>第一个参数按字典顺序>
请注意,您可以(并且可能应该)使用 std::string
代替 (#include <string>
),这将自动透明地为您提供复制、比较和动态增长。
相关文章:
- 提高从排序字符串中获取字母顺序的顺序复杂性
- C 在向量的向量中按字母顺序排序字符串
- 在排序字符串向量中进行有效搜索
- C 选择排序字符串数组
- C 排序字符串的动态阵列 - 排序不起作用
- C++:使用 LSD 基数排序字符串排序崩溃
- 标准::排序 C 字符串的比较函数
- 使用最小运算将给定字符串转换为排序字符串
- C++ - 链表插入排序(字符串元素)
- 分段错误(核心转储)排序字符串数组错误
- 比较函数用于排序字符串的矢量(每个字符串都是一个数字)C++
- std::mutiset vs std::vector,用于读取排序字符串并将其写入文件
- 按字母顺序快速排序字符串矢量
- C++按字母顺序排序字符串
- 按长度排序字符串数组
- 我如何使用c++库函数或STL排序字符串
- 首先按字符排序字符串
- 如何按ASCII顺序排序字符串
- 按字母顺序排序字符串数组
- 按降序排序字符串