转载出处:http://bbs.csdn.net/topics/390206248?page=4
//copyright@ nossiac
//July、updated,2011.04.24。
#include <stdio.h>
#include <string.h>
#define getbit(x) (1<<(x-'a'))
void
a_has_b(
char
* a,
char
* b)
{
int
i = 0;
int
dictionary = 0;
int
alen =
strlen
(a);
int
blen =
strlen
(b);
for
(i=0;i<alen;i++)
dictionary |= getbit(a[i]);
for
(i=0;i<blen;i++)
{
if
(dictionary != (dictionary|getbit(b[i])))
break
;
}
if
(i==blen)
printf
(
"YES! A has B!/n"
);
else
printf
(
"NiO! Char at %d is not found in dictionary!/n"
,i);
}
int
main()
{
char
* str1=
"abcdefghijklmnopqrstuvwxyz"
;
char
* str2=
"akjsdfasdfiasdflasdfjklffhasdfasdfjklasdfjkasdf"
;
char
* str3=
"asdffaxcfsf"
;
char
* str4=
"asdfai"
;
a_has_b(str1, str2);
a_has_b(str1, str3);
a_has_b(str3, str4);
return
0;
}