自己编写了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. JS原型的动态性

    由于在原型中查找成员的过程是一次搜索,所以我们对原型对象所做的任何修改都能立即从实例上反映出来(但不包括对原型对象的重写,下面会介绍到),即使是对原型的修改操作在创建实例之后.如下面的示例所示: fu ...

  2. vue拦截

    ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' import ...

  3. Linux——CentOS7安装gcc编译器详解 查看内核版本

    [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:3 ...

  4. 为什么Java大数据能带你走上人生巅峰

    国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发. 开发程序员的工作大多是重复性劳动,容易产生疲惫感,薪资在工作2-5年内就达到了一个峰值,再要提升就比较困 ...

  5. Linux命令——diff、patch

    简介 diff以行为单位比较不同ASCII文件差异,可以输出一组指令,用于指导如何更改一个文件使其与第二个文件相同.diff在软件开发时多用于比较新旧版本代码,和patch连用可以将文件间区别做成补丁 ...

  6. 【数据库】通过触发器实现审计日志记录-demo篇

      触发器实现审计日志记录(记录增.删.改) #创建测试表 CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, ...

  7. python-----opencv截取按帧截取视频

    最近有需求把一个视频从指定帧截取一部分,demo代码如下: import cv2 video_path = r'F:\temp\temp_0806\1\video\test.dat' videoCap ...

  8. win10+CPU+Python3.6下安装pytorch

    - 写在前面 最近,学习之余,想继续搞以前的深度学习.虽然电脑上已经安装配置好tensorflow,但是鉴于其学习难度较高,且我是一个忠实的Pythoner(爱所有Python化的东西),因此果断入坑 ...

  9. n诺挑战赛5题解

    Drinking 题意:就是给你n瓶酒的初始伤害值,第几天喝这瓶酒伤害值就是这瓶酒的初始伤害值第几倍,而且他每天喝的瓶数不超过m.要你输出所有的情况,就是他喝(1~n)瓶的伤害值的最小, 思路:就是这 ...

  10. JS 截取地址栏指定字符后的内容

    一.获取地址栏路径 var url = window.location.href; 二.截取指定字符后的内容 /** * 截取指定字符后的内容 * @param url 路径 * @param par ...