我目前有 2 个数组:
char A = {"Hello", "Hello2", "Hello3", "Hello4"}
int B = {3, 2, 0, 1};
B
数组中的每个索引位置都对应于 messages 数组中的相同索引位置。例如
"Hello"
需要位于位置 3,"Hello2"
需要位于位置 2,"Hello3"
需要位于位置 0并且 "Hello4"
需要位于位置 1。
期望的输出:
char aSorted = {"Hello3", "Hello4", "Hello2", "Hello"};
因此,我需要一个排序算法,可以根据B
对A
进行排序。我真的很难理解这个问题,并且想知道是否有人可以给我一个在 C 中执行此操作的解决方案。请记住,我的 A 和 B 数组可能每个都有 256000 个值,因此它应该是最佳的。谢谢。
最佳答案
#include<stdio.h>
main(argc,argv)
const char** argv;
{
char chararray[4]={'H','I','J','K'};
int indexarray[4]={3,2,0,1};
char newchararray[4];
for(int i=0;i<4;i++) {
newchararray[i]=chararray[indexarray[i]];
}
for(int i=0;i<4;i++) {
printf("%c ",newchararray[i]);
}
printf("\n\n");
return 0;
}
还有一件事,如何将这样的字符串放入 char 数组中? 更具体地说,我的编译器 cc 给出了
error: excess elements in char array initializer
char chararray[4]={"H","I","J","K"};
^
关于c - 根据包含索引的另一个数组的内容对 C char 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58471177/