华为2016校招(字符集合)
题目描述输入一个字符串,求出该字符串包含的字符集合
输入描述:
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
输出描述:
每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
输入例子:
abcqweracb
输出例子:
abcqwer
代码实现:
#include <stdio.h>
int main(){
/** A-Z=65-90a-z=97-122
** hash_map数组的作用是,使用下标作为asc码的索引,例如hash_map=0/1;表示大写字符'A'是否已经出现过,出现了置1,没出现为0
**/
int hash_map;//创建一个映射数组,hash_map下标为0时表示“A”,下标为57时,表示“z”,对于asc码值为91-96的字符这里也包含了,但是不使用这几个值;
int i;
for(i=0;i<58;i++){
hash_map=0;
}
char in_str;
gets(in_str);
char *p2char=in_str;
for(i=0;i<100;i++)
{
int asc_char = (int)(*p2char);
if(hash_map ==0)
{
hash_map =1;
printf("%c",*p2char);
}
p2char++;
if(*p2char =='\0')
break;
}
printf("\n");
return 0;
}
欢迎看到的朋友进行指正;
页:
[1]