自己编写了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;

}

C语言指针方法对字符串进行去重的更多相关文章

  1. C语言多种方法求解字符串编辑距离问题的代码

    把做工程过程经常用的内容记录起来,如下内容段是关于C语言多种方法求解字符串编辑距离问题的内容. { if(xbeg > xend) { if(ybeg > yend) return 0; ...

  2. 11-C语言指针&一维数组&字符串

    一.用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = ...

  3. C语言中函数返回字符串的4中方法

    C语言中函数返回字符串的4中方法 函数的构成部分:返回类型.函数名称.参数.函数主体 参数:函数调用时传入的参数称为实参,函数定义时出现的参数为形参 形参的作用在于接收实参传入的值,形参和函数内部的其 ...

  4. 1.3 正则表达式和python语言-1.3.4使用 match()方法匹配字符串

    1.3.4使用 match()方法匹配字符串(第一次写博客,格式,述语有不当之处还请见谅)2018-05-08 Python 代码是以Jupyter Notebook编写的,主要写的是python3的 ...

  5. C语言笔记 08_函数指针&回调函数&字符串&结构体&位域

    函数指针 函数指针是指向函数的指针变量. 通常我们说的指针变量是指向一个整型.字符型或数组等变量,而函数指针是指向函数. 函数指针可以像一般函数一样,用于调用函数.传递参数. 函数指针变量的声明: / ...

  6. C语言指针和字符串

    #include <stdio.h> int main() { /********************************************* * 内存: * 1.常量区 * ...

  7. C语言:将ss所指字符串中所有下标为奇数位上的字母转换成大写,若不是字母,则不转换。-删除指针p所指字符串中的所有空白字符(包括制表符,回车符,换行符)-在带头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回该结点在链表中所处的顺序号,

    //将ss所指字符串中所有下标为奇数位上的字母转换成大写,若不是字母,则不转换. #include <stdio.h> #include <string.h> void fun ...

  8. C语言 指针小结

    指针 -->指针变量 类型名 *变量名 int *point1; char *point2; 注意:*p可以直接使用,它代表指针p指向的变量,*p可以当做被指向的变量使用!~~~~ 一个变量的地 ...

  9. Swift3.0语言教程使用路径字符串

    Swift3.0语言教程使用路径字符串 Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串.本小节将讲解如何使用路径字符串. 1.组合路径 开发者可以将数组快速的组合成 ...

随机推荐

  1. SQL 不同服务器数据库操作

    https://www.cnblogs.com/lusunqing/p/3660190.html --创建远程链接服务器 execute sys.sp_addlinkedserver @server= ...

  2. Swagger 实践 <二>

    1. 新建.netCore WebApi 项目(选择Angular).按照上一篇的加上Swage 文档,使http://localhost:11934/swagger/v1/swagger.json  ...

  3. 【原创】大叔经验分享(90)linux服务器iowait和负载很高

    # top top - 21:21:51 up 207 days, 1:30, 5 users, load average: 0.90, 0.79, 1.62 Tasks: 249 total, 1 ...

  4. Nginx Too many open files

    2019/07/25 08:31:31 [crit] 15929#15929: accept4() failed (24: Too many open files) 2019/07/25 08:31: ...

  5. restTemplate源码解析(四)执行ClientHttpRequest请求对象

    所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们创建了一个ClientHttpRequest的实例.本文将继续阅读Cl ...

  6. [转]Spring Security Oauth2 认证流程

    1.本文介绍的认证流程范围 本文主要对从用户发起获取token的请求(/oauth/token),到请求结束返回token中间经过的几个关键点进行说明. 2.认证会用到的相关请求 注:所有请求均为po ...

  7. ASIHTTPRequest源码简单分析

      1.前言      ASIHttprequest 是基于CFNetwork的,由于CFNetwork是比较底层的http库,功能比较少,因此,在ASIHttprequest中实现了http协议中比 ...

  8. iOS开发 iOS10推送必看(基础篇)-转

    iOS10更新之后,推送也是做了一些小小的修改,下面我就给大家仔细说说.希望看完我的这篇文章,对大家有所帮助. 一.简单入门篇---看完就可以简单适配完了 相对简单的推送证书以及环境的问题,我就不在这 ...

  9. 还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧

    Jerry从2018年底至今,已经写了一系列关于SAP Kyma的文章,您可以移步到本文末尾获得这些文章的列表.Kyma是SAP开源的一个基于Kubernetes的云原生应用开发平台,能够允许SAP的 ...

  10. Django中使用xadmin作为后台管理页面

    xadmin后台管理 安装:luffy虚拟环境下 # >: pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 ...