自己编写了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. Oracle中select 1和select *的区别

    转自:https://www.linuxidc.com/Linux/2010-05/26202.htm 创建myt表并插入数据,如下: create table myt(name varchar2,c ...

  2. sql语句开启事务

    以下为示例代码: begin tran update 表 where 姓名='A' update 表 where 姓名='B' rollback else commit

  3. Array + two points leetcode.18 - 4Sum

    题面 Given an array nums of n integers and an integer target, are there elements a, b, c, and d in num ...

  4. Button控件的三种点击事件

    ①在布局文件中指定onClick属性的方法设置点击事件 ②使用匿名内部类的方法设置点击事件 ③实现Activity实现OnClickListen接口的方式设置点击事件 linear.xml文件 < ...

  5. Ceph 调整crush map

    目录 Ceph 调整crush map 1.前言 2.示例 1.创建新的replicated 2.修改当前pool的rule Ceph 调整crush map 1.前言 本文章适用于ceph n版 2 ...

  6. Linux磁盘管理——swap分区

    转自:Linux Swap交换分区设置 对swap分区的误解 一种流行的.以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍.也就是说,如果内存是2G,那么就应该分出4G的 ...

  7. 排序方法——python

    1.冒泡排序法(Bubble Sort) 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数: 针对所 ...

  8. 最近公共祖先算法LCA笔记(树上倍增法)

    Update: 2019.7.15更新 万分感谢[宁信]大佬,认认真真地审核了本文章,指出了超过五处错误捂脸,太尴尬了. 万分感谢[宁信]大佬,认认真真地审核了本文章,指出了超过五处错误捂脸,太尴尬了 ...

  9. Python 类和对象(3)

    大家有没有想我呢? 今天讲一下类的一些概念: 公开属性 私有属性 基本方法 私有方法 直接上代码 class Makeup(): brand = 'MAC' #公开属性 __producer = 'U ...

  10. Red Hat Enterprise Linux 7.0

    简介 Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机.红帽公司从Red Hat Enterprise Linux 5开始对企业版LIN ...