从第一个字符串中删除第二个字符串中出现过的所有字符

// 从第一个字符串中删除第二个字符串中出现过的所有字符

#include <stdio.h>

char* remove_second_from_first( char *first, char *second )
{
    if( first == NULL || second == NULL )
    {
        printf("first or/and second should not be NULL\n");
        return NULL;
    }

    char flag[256]={0};
    char *p, *q;

    p = second;
    while( *p != ‘\0‘ )
        flag[*p++] = 1;

    p = q = first;
    while( *q != ‘\0‘ )
    {
        if( flag[*q] == 1 )
        {
            q++;
            continue;
        }
        *p++ = *q++;
    }
    *p = ‘\0‘;

    return first;
}

int main(void)
{
    char s1[101], s2[101];
    scanf("%s",s1);
    scanf("%s",s2);
    char *result = remove_second_from_first(s1,s2);
    printf("%s\n",result);

    return 0;
}

从第一个字符串中删除第二个字符串中出现过的所有字符,布布扣,bubuko.com

时间: 2024-10-11 06:30:37

从第一个字符串中删除第二个字符串中出现过的所有字符的相关文章

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。

在字符串中删除特定的字符 输入”They are students.” 和”aeiou”则删除之后第一个字符串变成 Thy r stdnts. 本题还用到了 “字符串hash” #include <iostream> #include <cstring> char * string_del_characters( char * const src, const char * const dest ) { int destLen = strlen( dest ); int hash_

从一个字符串中删除另一个字符串中出现过的字符

定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串.例如从第一个字符串"We are students."中删除第二个字符中"auiou"中出现过的字符得到的结果是"W r stdnts" 解题思路:利用哈希查找. #include <stdio.h> void deleteStr2FromStr1(char* str1, char* str2) { if(str1 == NULL || str2 == N

按指定格式的子字符串,删除和分割字符串

删除就用- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;将@“[:1:]"”,替换成@“” 分割就用- (NSArray *)componentsSeparatedByString:(NSString *)separator;根据你选定分割符拆分字符串 IOS字符串按特定字符拆分成数组 NSString * fruits = @&quo

删除第一个字符串出现的第二个字符串

题目描述: 删除第一个字符串中出现的第二个字符串,比如s1:ababaabb, s2:aba,输出应为:baabb #include <iostream> #include <string> using namespace std; int main(){ string s1, s2; while(cin >> s1){ char c = getchar(); cin >> s2; int pos = -1; while((pos = s1.find(s2)

从hadoop 中删除匹配指定字符串的任务

我们都知道如果使用 hadoop job -list 获取当前正在运行的hadoop 任务,返回的结果如下: 返回的任务中不包括任务的名称, 但是通过hadoop 管理页面是可以查看到job 的名称的. 但是现实情况是我们可能需要根据任务的名称来删除任务. 我的实现方案是这样的 1. 通过获取 http://192.168.1.100:50030/jobtracker.jsp 网页 2. 解析网页获取任务名称 + job_id 的任务列表 3. 过滤出指定名称的job 4. 最后调用hadoop

oracle的minus返回第一个表中有、第二个表中没有的数据

CREATE TABLE hovertree_union_1 ( id INT, val VARCHAR(10) ); CREATE TABLE hovertree_union_2 ( id INT, val VARCHAR(10) ); INSERT INTO hovertree_union_1 VALUES(1, 'A'); INSERT INTO hovertree_union_1 VALUES(2, 'B'); INSERT INTO hovertree_union_1 VALUES(3

HTML网页内容转换成字符串(删除从指定字符串到指定字符串)

背景: 最近遇到个小需求就是将下面字符串去掉无用字符串 <br><br>"你爷爷也喜欢吃鱼嘛."<br><br>我笑了起来,"哪有猫不喜欢吃鱼的?"<br><br>猫嘀咕了一声.<br><br>"它说什么?"<br><br>"它说你怎么还钓不到,肚子都等饿了."<br><br>我瞥了猫

在字符串中删除特定的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入"I am lavor_zl."和"I love you.",则删除之后的第一个字符串变成"amar_z".要求相对于第一个字符串的长度n时间复杂度为O(n). 解题思路:用一个bool数组保存是否在第二个字符串中出现的所有字符,数组下标表示字符,这个数组的长度为256,因为C/C++中字符总共有256个.遍历第一个字符串,用一个指针或数组下标access来表示当前访问第

在字符串中删除特定字符

63.在字符串中删除特定的字符.题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.”. 思路: 1. 位图法 将两个字符串分别转换成bitmap 然后对他们做异或xor运算,得到的结果即为排除了第二个字符串的所有字符, 然后对该结果依次与原字符串的所有字符进行与运算,结果不为零的即为所得    恩 位图真是个好东西啊...时间复杂度o(n+m) 花在了遍历