gpt4 book ai didi

c - 将整数数组映射到字符串数组时如何进行排列?

转载 作者:行者123 更新时间:2023-11-30 15:36:07 24 4
gpt4 key购买 nike

如何在 C 编程中使用字符串字符数组编写排列方法,同时将每个字符映射到整数?例如,我有 10 个整数的排列:

1, 0, 2, 3, 5, 4, 6, 9, 8, 7 - 不一定按顺序

以及一个充满字符的文本,少于 400 个字符。我将它们存储到两个单独的数组中,但是如何将每个整数映射到每个字符?映射它们之后,我将如何编写排列方法?

两个数组的大小都不相同。排列数组有 10 个值,字符数组少于 400 个字符,但我只是将其初始化为: char text[400];每个数组的大小不变。

更好的解释:

我在想,如果我有 10 个整数 (0 - 9) 和以下排列 - 每个排列不能有相同的数字:

0、1、2、3、4、5、6、7、8、9 - 原始

1, 0, 3, 6, 7, 4, 5, 9, 2, 8 - 排列

Apple、bee - 10 个字符的文本,包括空格和逗号

因此,通过应用上面的排列,我会得到类似的结果:

'pAl be,epe'

如果你使用该排列的逆排列,你会再次得到“Apple,bee”。

原始索引[0]是Apple中“A”的位置 - 并且通过排列,由于索引1,它与“p”交换...等等。

那么我该如何实现呢?换句话说,我如何将排列映射到每个字符并让它切换位置?我还没学过结构。

最佳答案

第一种情况:

简单的一个方法是在数组之间建立隐式链接。

Array[int]    -->      Array[string]           
1 --> "toto" Array[0]
0 --> "titi" Array[1]
2 --> "tutu" Array[2]
...

然后,如果你想排列两个元素,你可以移动字符串指针

第二种情况:

您希望数组之间有一个真正的链接,所以我建议创建一个结构:

struct example
{
int ArrayInt[10];
char *ArrayPointer[10];
};

其中 ArrayPointer 将包含位于字符串数组中的字符串的地址。

示例:

           STRUCTURE

Array[int] Array[char *] ArrayString

0 &ArrayString[1] "toto"

1 &ArrayString[0] "titi"

2 &ArrayString[2] "tutu"

数字 0 映射为“titi”

数字 1 带有“toto”

数字 2 带有“芭蕾舞短裙”

要进行排列,只需更改结构中的指针

可以吗?

关于c - 将整数数组映射到字符串数组时如何进行排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com