【每日一题】字符串筛选 (去除所有相同的字符)

1、题目描述

给定一个长度为n字符串, 需要去除所有之前曾经出现过的字符,只保留第一次出现的字符

2、思路:

(1) 首先需要定义两个数组,分别为“输入的字符串数组”old[ ] 以及 “输出的字符串数组” new[ ]。

(2) 取old数组中的第一个字符去和new数组中的每一个字符串相比较是否相同,若出现相同则取old数组的下一个字符再次与new中每一个字符相比较,若都不相同则存入new的数组中。

(3) 最后输出数组new。

3、代码展示

#include<stdio.h>
 void killsame(char *o, char *n)
{
	int i=0, j, k=0;
	int label;
	
	while(o[i] != '\0')
	{
		label = 1;
		for(j=0; j<i; j++)
		{
			if (o[i] == n[j])
				label = 0;  //一旦相同标志位置0
		}
		if(label)  // 不相等
			n[k++]=o[i];
		i++;
	}	
	n[k]='\0';  //结尾给\0
	puts(n);  //输出
}
int main(void)
{
	printf("Please input a string you want:\n");
	char old[126]; 
	char new[126];
	scanf("%s",old);
	killsame(old, new);//去重
 return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值