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;
}