您的位置:首页 > 其它

在字符串S1中删除字符串S2中所包含的字符【转】

2017-12-21 15:39 513 查看
转自:http://www.cnblogs.com/tolimit/p/4202959.html

/*************************************************************************
> File Name: test.c
> Author: ToLiMit
> Mail: 348958453@qq.com
> Created Time: Sun 04 Jan 2015 06:20:05 PM PST
************************************************************************/

#include<stdio.h>

void delete_str_char (char * main_str, char * sub_str)
{
if ((main_str == NULL) || (sub_str == NULL))
return;

char * sub_index = sub_str;
char * main_index = main_str;
char bitmap[32] = {0};
char * str = (char *)malloc (strlen (str) + 1);
char * index = str;
memset (str, 0, strlen (str) + 1);

while (*sub_index != '\0') {
char suffix = ((*sub_index) / 8) - 1;
char offset = (*sub_index) % 8;

bitmap[suffix] |= (0x1 << (8 - offset));
sub_index++;
}

while (*main_index != '\0') {
char suffix = ((*main_index) / 8) - 1;
char offset = (*main_index) % 8;

if ((bitmap[suffix] & (0x1 << (8 - offset))) == 0) {
*index = *main_index;
index++;
}
main_index++;
}

*index = '\0';
memcpy (main_str, str, strlen (str) + 1);
free (str);
return;
}

int main (int argc, char * argv[])
{
char test[] = "aabcdaaaaabcaacb";

delete_str_char (test, "bcd");
printf ("%s\n", test);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐