zoukankan      html  css  js  c++  java
  • C语言指针方法对字符串进行去重 上海

    自己编写了3种方法,都是使用指针的。(在LR中编写的)

    1.先在原字符串进行比较,然后再放入目标字符串

    Action()
    {
    char *srt="aadfeedeewwffggeccceweriiyiyyxxxxxpppuuyyyqwqqqerrrwuuuyyz";
    char *desc;
    desc=(char *)malloc(100*sizeof(char));
    fun(srt,desc);
    lr_output_message("%s",desc);
    free(desc);
    return 0;

    }
    char *fun(char *str,char *desc)
    {
    int i,j;
    int len=strlen(str);
    for(i=0;i<len;i++)     //遍历字符串
    {
    for(j=1;j<len-i;j++)//匹配原字符串后面的所有字符
    {
    if(*str==*(str+j))
    {
    break;             //如果原字符串和其后的字符串有相同的,则不再查找,该字符不放入目标字符串中

    }

    }
    if(*str!=*(str+j))
    {
    *desc=*str;       //如果原字符串和其后的字符串均不同,则该字符不放入目标字符串中
    desc++;
    }
    str++;
    }
    *desc='\0';
    return desc;

    }

    2.先放入目标字符串,然后在目标字符串进行比较,是否需要继续放入

    Action() 

    {
    char *srt="aadfeedeewwffggeccceweriiyiyyxxxxxpppuuyyyqwqqqerrrwuuuyyz";
    char *desc;
    desc=(char *)malloc(100*sizeof(char));
    fun(srt,desc);
    lr_output_message("%s",desc);
    free(desc);
    return 0;

    }
    char *fun(char *str,char *desc)
    {
    int i,j;
    int len=strlen(str);
    char *p=desc;     //新字符串放两个指针,一个用来移动,一个不动,做循环用
    for(i=0;i<len;i++)
    {
    for(j=0;j<i;j++)
    {
    if(*str==*(p+j))     //放入之前,先遍历目标字符串中当前存入的所有值
    {
    break;

    }

    }
    if(*str!=*(p+j))      //不重复,放入目标字符串
    {
    *desc=*str;
    desc++;
    }
    str++;
    }
    *desc='\0';
    return desc;

    }

    3. 先对字符串进行冒泡排序,然后进行去重

    Action()

    {

           char str[]="aedbebfdebefggmh";

           int len=strlen(str);

        char *desc;

           desc=(char *)malloc(len*sizeof(char));

        delete(str,desc);

           lr_output_message("去重后的自符串为:%s",desc);

           free(desc);

           return 0;

    }

    char *delete(char *srt,char *desc)

    {

           int i,j;

           int len=strlen(srt);

           char temp;

           char *p=srt;

           for(i=0;i<len;i++)

           {

                  for(j=0;j<len-1;j++)

                  {

                         if(*(srt+j)>*(srt+j+1))

                         {

                                temp=*(srt+j);

                             *(srt+j)=*(srt+j+1);

                                *(srt+j+1)=temp;

                         }

                  }

           }

        lr_output_message("排序后的自符串为:%s",srt);

           srt=srt+1;

           while(*srt!='\0')

       {

            if(*srt!= *p)

           {

               *desc= *p;

                  desc++;

           }

            else

         {

                   lr_output_message("%c",*p);

            }

            p++;

            srt++;

       }

           if(*srt=='\0')

           {

                  *desc=*p;

                  desc++;

           }

           *desc='\0';

           return desc;

    }

  • 相关阅读:
    ZABBIX监控TCP连接状态
    MySQL索引(九)
    MySQL字符集、information_schema元数据(八)
    DML(数据库操作语言)(六)
    DDL(数据库定义语言)(五)
    MySQL多实例安装、配置、启动(四)
    CentOS7 编译安装MySQL5.6.38(一)
    MySQL权限管理、配置文件(三)
    MySQL服务的构成(二)
    yum lockfile is held by another process
  • 原文地址:https://www.cnblogs.com/hindy/p/6994417.html
Copyright © 2011-2022 走看看