自己编写了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. Spring Boot 多个域名指向同一IP

    一.需求:直接通过域名访问首页(同一应用下,多个首页,包括PC端.手机端首页) 方法:采用多个域名绑定同一IP下同一应用,不同域名对应不同产品(PC.手机端)的方法,在后台通过拦截器判断 reques ...

  2. JavaBean 详细

    一.什么是JavaBean? JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方 ...

  3. wstngfw中配置squid

    wstngfw中配置squid Squid是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 S ...

  4. SVN 问题解决之 Working copy path does not exist in repository

    同事的SVN更新时提示某个特定文件提示 Working copy path does not exist in repository svn更新会被这个错误打断,导致无法完全更新 删掉文件再更新仍然有 ...

  5. secureCRT 在本地和远程传输文件方式

    securecrt 按下ALT+P就开启新的会话 进行ftp操作.输入:help命令,显示该FTP提供所有的命令          pwd:  查询linux主机所在目录(也就是远程主机目录)     ...

  6. meta标签常见浏览器设置

    一.如何让双核浏览器默认选择 WebKit 内核渲染自己开发的网页 我们可以使用标签来指定适合自己网站的渲染内核名称,当双核浏览器访问本网页时,就会根据我们的指示,选择我们指定的渲染内核来处理网页.若 ...

  7. Plugin 免费CSS生成器CssCollector

    下载: 百度云 自己在做Web开发的时候,页面里会有很多样式类,一个个复制到样式表里总感觉很麻烦 网上也没有找到合适的工具,可以一键生成样式表 所以,干脆自己做一个咯~ 案例展示 花了一天时间,CSS ...

  8. TSec《mysql client attack chain》

    从这个议题学到挺多,攻击手法的串联. 1.mysql Client Attack 这个攻击手法去年就爆出来了,本质就是mysql协议问题,在5步篡改读取客户端内容,导致任意文件读取,如下图所示. 修改 ...

  9. xposed 泛型参数怎么设置

    以下是hook一个方法,A(List<class>,bool b); 百度查了好多都没能解决,自己琢磨了挺久才搞定.直接用List.class就可以了,因为重载不能相同参数,所以List就 ...

  10. selenium重定向新窗口

    1.跳转新窗口 # 浏览器跳转新窗口后,selenium绑定新窗口 print('页面跳转后重新绑定selenium.') time.sleep(3) search_window = driver.c ...