字符过滤拷贝

来源:互联网 发布:reveur 知乎 编辑:程序博客网 时间:2024/06/14 17:29

题目:

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


0 0
原创粉丝点击