gpt4 book ai didi

c - 处理字符串的算法

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:36 26 4
gpt4 key购买 nike

我真的不知道如何实现这个功能:该函数应采用一个指向整数的指针、一个指向字符串数组的指针和一个用于处理的字符串。该函数应将交换 'ch' 组合的所有变体写入数组 '@' 符号并将整数更改为该数组的大小。下面是一个处理示例:

choker => {"choker","@oker"}

chocho => {"chocho","@ocho","cho@o","@o@o"}

chachacha => {"chachacha","@achacha","cha@acha","chacha@a","@a@acha","cha@a@a","@acha@a","@a@a@a"}

我是用 C 标准 99 写的。所以这是草图:

int n;
char **arr;
char *string = "chacha";
func(&n,&arr,string);

及功能示意图:

int func(int *n,char ***arr, char *string) {

}

所以我想我需要创建另一个函数,它计算“ch”组合的数量并为此分配内存。我很高兴听到有关此算法的任何想法。

最佳答案

您可以很容易地计算出组合的数量:

char * tmp = string;
int i;
for(i = 0; *tmp != '\0'; i++){
if(!(tmp = strstr(tmp, "ch")))
break;
tmp += 2; // Skip past the 2 characters "ch"
}

// i contains the number of times ch appears in the string.

int num_combinations = 1 << i;

// num_combinations contains the number of combinations. Since this is 2 to the power of the number of occurrences of "ch"

关于c - 处理字符串的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675400/

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