【发布时间】:2012-10-23 04:16:38
【问题描述】:
我正在使用字符串编写插入排序。我有 char 数组,例如:
char array1[4] = {'a', 'b', 'c', '\0'};
char array2[4] = {'b', 'd', 'e', '\0'};
而我需要使用这个操作:
char string[2];
string[1] = array1;
string[2] = array2;
有可能吗?
因为在插入排序中我需要一个字符串。 这是插入代码:
char* insertionsort(char* a, int n) {
int k;
for (k = 1; k < n; ++k) {
int key = a[k];
int i = k - 1;
while ((i >= 0) && (key < a[i])) {
a[i + 1] = a[i];
--i;
}
a[i + 1] = key;
}
return a;
}
【问题讨论】:
-
您的数组太小 - 没有空间用于空终止符。使用
array1[]来自动调整它们的大小。 -
您的数组大小应为
4,而不是3。char string [2];应该是char *string [2];我猜。 -
你想连接这两个数组吗?还是你想创建一个数组?
-
我的目标是创建字符串数组。在插入排序中我需要字符串数组。所以我想制作一个数组数组
标签: c string insertion-sort