gpt4 book ai didi

c - 将数组或结果或数组返回到主函数 C

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

嗨,我有一个小功能,可以从句子中删除以 2 个辅音开头的单词。有这样的功能:

char * fun_zod(char * sak)
{
char * sep = " "; //Zodziu atskirejas - tarpas
char * zodis = strtok(sak,sep); //Nurodome kad sakini suskirstytume i zodzius po viena
char * zodmas[20];
int i = 0;
zodmas[0] = zodis; //Iraso atskirai kiekviena zodi i masyva
while (zodis != NULL)
{
if (zodis == NULL)
break;
i++;
zodis = strtok(NULL,sep);
zodmas[i] = zodis;
}
int n=i;
for(int j = 0;j < n;j++)
{
if (!( zodmas[j][0] == 'a' || zodmas[j][0] == 'e' || zodmas[j][0] == 'i' || zodmas[j][0] == 'o' || zodmas[j][0] == 'u' ) && !( zodmas[j][1] == 'a' || zodmas[j][1] == 'e' || zodmas[j][1] == 'i' || zodmas[j][1] == 'o' || zodmas[j][1] == 'u' ))
{
zodmas[j]="";
}

}
for (i=0;i < n; i++)
{
printf("%s ", zodmas[i]);
}
}

现在我想将结果返回到主函数,不是从函数打印结果,而是从主函数打印结果。我知道在 C 中我不能从函数返回数组。也许有人可以建议我如何将结果返回到主函数?感谢您的帮助

最佳答案

传递 zodmas 和 n 作为参数。

添加一个测试以防止 zodmas 溢出

char * fun_zod(char * sak, int *n, char **zodmas)                              
{
char * sep = " "; //Zodziu atskirejas - tarpas
char * zodis = strtok(sak,sep); //Nurodome kad sakini suskirstytume i zodzius po viena
int i = 0;
zodmas[0] = zodis; //Iraso atskirai kiekviena zodi i masyva
while (zodis != NULL && i < *n)
{
if (zodis == NULL)
break;
i++;
zodis = strtok(NULL,sep);
zodmas[i] = zodis;
}
*n=i;
for(int j = 0;j < i;j++)
{
if (!( zodmas[j][0] == 'a' || zodmas[j][0] == 'e' || zodmas[j][0] == 'i' || zodmas[j][0] == 'o' || zodmas[j][0] == 'u' ) && !( zodmas[j][1] == 'a' || zodmas[j][1] == 'e' || zodmas[j][1] == 'i' || zodmas[j][1] == 'o' || zodmas[j][1] == 'u' ))
{
zodmas[j]="";
}

}
}
int main(void) {
int n = 20;
char *zodmas[20];
fun_zod(strdup("toto tutu tata"), &n, zodmas);
for (int i=0;i < n; i++)
{
printf("%s ", zodmas[i]);
}
return 0;
}

关于c - 将数组或结果或数组返回到主函数 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28982289/

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