题目:
char a[100],char b[70], 使用c/c++如果最高效的把a中有而b中没有的字符赋给char c[100]
思想: 每个字符的值在255内,将字符转换成数值,就是255个数值,然后把对应的下标标记一下说明这个字符存在了,
遍历b打标记****************遍历a看是否打了标记
#include <iostream>
using namespace std;
int main()
{
char a[10] = { 'a','b','c','d','e','f','g','h','i','l'};
char b[5] = { 'a','b','c','d','e' };
char c[10];
int arrFlag[255] = {0};
int nALen = sizeof(a)/sizeof(char);
/*
char ch = 's';
char* p = &ch;
printf("0x%x\n", p);
printf("0x%x\n", p+5);
*/
for(int i=0; i<strlen(b); ++i)
{
arrFlag[int(b[i])] = int(b[i]);
}
int k = 0;
for(int j=0; j<strlen(a); ++j)
{
if(arrFlag[int(a[j])] != 0 ){
cout<<arrFlag[int(a[j])]<<' ';
continue;
}else{
cout<<arrFlag[int(a[j])]<<' ';
c[k] = a[j];
k++;
}
}
for(int i=0; i<strlen(c); ++i)
{
cout<<c[i]<<' ';
}cout<<endl;
return 0;
}