提问人:Hermann 提问时间:9/3/2022 更新时间:9/3/2022 访问量:54
C 中字符串集的排列
Permutations of set of strings in C
问:
我想编写一个 C 程序来打印出 k 长度的排列。我是 C 的新手。我可以像这样用 Java 来做,
public static void main(String[] args) {
ArrayList<String> dict = new ArrayList<>();
dict.add("cat");
dict.add("tag");
dict.add("got");
dict.add("get");
dict.add("tog");
int k = 3;
helper(k, dict, new ArrayList<String>());
}
public static void helper(int k, ArrayList<String> dict, ArrayList<String> seq) {
if (seq.size() == k) {
System.out.println(seq);
return;
}
for (int i = 0; i < dict.size(); i++) {
seq.add(dict.get(i));
helper(k, dict, seq);
seq.remove(dict.get(i));
}
}
但是,我在 C 中遇到麻烦,具体来说,我不知道如何将字符串数组传递给我的帮助程序功能。
#include <stdio.h>
void sequence(int k, char *seq[], char[] **dic){
// base case
int num = sizeof(seq) / sizeof(seq[0]);
if(num == k){
//print
//return
}
for(int i = 0; i < k; i++){
//recurse
}
}
int main() {
char* dict[5][10] = {"cat", "dog", "got", "get", "tog"};
char* seq[5][10] = {"", "", "", "", "", ""};
int k = 3;
sequence(k, *seq, **dict)
return 0;
}
答: 暂无答案
评论
char* dict[5][10]
char dict[5][10]
const char* dict[5]
seq
char *seq[]
char **seq