程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组??

开发过程中遇到如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?的解决方法建议,希望对你解决如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?有所启发或帮助;

这是原始问题:

编写函数repeating_group(char* arr[],int n);

哪里,

  • arr[]:预定义的要操作的字符串数组
  • narr[]
  • 的大小

并返回 char* res[] 和组合在一起的重复字符串。

示例:

输入:

char* arr[] = {"tut","slf","tut","lzyy","tut"};

输出:

char* res[] = {"tut","lzyy"}

这是我的代码:

#include<stdio.h>
char repeating_group(char*arr[],int n)
{
    int i,j;
    printf("char*res[]= {");
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {

            if(arr[i]==arr[j])
            {
                printf("\"%s\",\"%s\",",arr[i],arr[j]);
            }
        }
    }
    printf("}");
}

int main()
{
    char*arr[]={"Carrot","Tomato","Mustard","Carrot","Potato","Brinjal"};
    int n=sizeof(arr)/sizeof(arr[0]);
    repeating_group(arr,n);
    getchar();
    return 0;
}

这里的问题是它只打印需要的东西,但不返回应该存储元素的数组。

解决方法

因为我也是 C 新手,我编辑了您的代码并且它起作用了,但是由于我不知道短路和其他方法,所以我按照我的方式做到了,还有许多其他简单的方法可以做到这一点,而不是我的。一些元素在离开的地方不一样并且没有被存储,所以要解决这个问题,必须创建新数组,程序中有两个新数组 arr1arr2

#include<stdio.h>
char repeating_group(char*arr[],int n)
{
    int i,j,k=0;
    char *arr1[n];
    char *arr2[n];
   
    for(i=0;i<n;i++)
        arr2[i]=arr[i];
    
    for(i=0;i<n;i++)
    { 
        for(j=i+1;j<n;j++)
        {
            if(arr2[j]==0)
                continue;
            if(arr[i]==arr[j])
            {
                arr1[k++]=arr2[i];
                arr1[k++]=arr2[j];  
                arr2[i]=0;
                arr2[j]=0;
            }
        }   
    }
    for(i=0;i<n;i++)
        if(arr2[i]!=0)
            arr1[k++]=arr2[i];
    
    printf("char* arr[]= {");
    for(i=0;i<n;i++)
        printf("\"%s\",",arr[i]);
    printf("}");
    
    printf("\n\n");
    
    printf("char* res[]= {");
    for(i=0;i<n;i++)
        printf("\"%s\",arr1[i]);
    printf("}");
    return 0;
}
int main(void)
{
    char *arr[]={"Carrot","Tomato","Mustard","Carrot","Potato","Brinjal"};
    int n=sizeof(arr)/sizeof(arr[0]);
    repeating_group(arr,n);
    //getchar();
}

它有效!!

大佬总结

以上是大佬教程为你收集整理的如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?全部内容,希望文章能够帮你解决如何编写一个函数,该函数返回带有组合在一起的重复字符串的数组?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: