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

定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串。例如从第一个字符串"We are students."中删除第二个字符中“auiou”中出现过的字符得到的结果是"W r stdnts"

解题思路:利用哈希查找。

#include <stdio.h>

void deleteStr2FromStr1(char* str1, char* str2)
{
	if(str1 == NULL || str2 == NULL || *str1=='\0' || *str2 == '\0')
		return;

	int hash[256];
	for(int i=0; i<256; ++i)
		hash[i] = 0;

	char* p = str2;
	while(*p != '\0')
		hash[*p++]++;

	char* strFront = str1;
	int len = strlen(str1);
	int small = -1;
	for(int i=0; i<len; ++i)
	{
		if(hash[*(strFront+i)] == 0)
			str1[++small] = *(strFront + i);
	}

	str1[++small] = '\0';
}

int main()
{

	char str1[] = "We are students";
	char str2[] = "aeiou";
	deleteStr2FromStr1(str1, str2);

	printf("%s",str1);

	return 0;
}
时间: 2024-08-08 05:16:29

从一个字符串中删除另一个字符串中出现过的字符的相关文章

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

// 从第一个字符串中删除第二个字符串中出现过的所有字符 #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}; ch

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

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

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

在字符串中删除特定的字符 输入”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_

无表头单链表的总结----从链表中删除某一个年纪的的节点

1 #include "head.h" 2 struct Student *del_same_age(struct Student*head, int age) 3 { 4 struct Student *p, *pt; int find = 0; 5 p = pt = head; 6 while (p != NULL)//当循环到最后一个节点时 7 { 8 9 if (p->stu_age == age)//如果相等 10 { 11 find++; //说明找到了 12 if

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

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

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

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

jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一个class?

思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class. 具体演示如下: 1.HTML结构:设计三个li元素 <ul id="test"> <li>Glen</li> <li>Tane</li> <li>John</li> </ul> 2.css样式:设计一个类selecte

jquery点击li标签之后在该li标签上添加一个class,点击下一个li时删除上一个li的class

思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class 具体演示如下: 1.HTML结构:设计三个li元素 <ul id="test"> <li>Glen</li> <li>Tane</li> <li>John</li> </ul> 2.css样式:设计一个类selected

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

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