`
kennethf6986
  • 浏览: 67285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

面试题目之删除字符串

阅读更多
问题描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。

要求实现函数:
int delete_sub_str(const char *str, const char *sub_str, char *result_str)

【输入】 str:输入的被操作字符串

         sub_str:需要查找并删除的特定子字符串

【输出】 result_str:在str字符串中删除所有sub_str子字符串后的结果

【返回】 删除的子字符串的个数

#include "stdio.h"
#include "conio.h"
#include "string.h"
#include   <stdlib.h>  

void main()
{
	int delSubStr(char * src,char * sub,char * result);

	char *srcstr = "abcdefgde";
	char *subp = "de"; 
	char resp[100];
	int count;

	count =  delSubStr(srcstr, subp, resp);

	printf("删除的子串的个数: %d\n", count);
	printf("原来的字符串    : %s\n", srcstr);
	printf("删除后的字符串:: %s\n", resp);

}

/*删除字串函数,在src中删除sub子串,并将结果保存在result字符串中*/
int delSubStr(char * src,char * sub,char * result)
{
	char *src_p = src;
	char *sub_p = sub;
	char *res_p = result;

	int count = 0; //记录包含子串的个数
	int sub_len = strlen(sub); //记录子串的长度
	char *temp; //临时保存子串的副本

	temp = (char*)malloc(sub_len + 1);
	memset(temp,'\0',sub_len+1);

	while (*src_p)
	{
		memcpy(temp,src_p, sub_len);
		//printf("temp--sub:%s--%s:\n", temp,sub_p);
		/*原串中包含与sub完全匹配的子串*/
		if( !strcmp(temp, sub_p) )
		{
			count++;
			src_p+=sub_len;
		}else
		{
			*res_p++ = *src_p++;
		}
	}
	*res_p='\0';
	free(temp);
	return count;
}
分享到:
评论

相关推荐

    判断2个字符串是否含有相同的字符

    关于结束符'\0'能否影响free()的使用,觉得是完全不用操心的,因为malloc的大小是系统来保存的,删除时候系统来接手就完了,而'\0'结束符只是针对一些常规字符串操作,比如printf()用%s控制输出时~! 新难点:...

    LeetCode题目分类与面试问题整理

    q387_字符串中的第一个唯一字符 链表操作 q2_两数相加 q19_删除链表的倒数第N个节点 q25_k个一组翻转链表 q61_旋转链表 q138_复制带随机指针的链表 q160_相交链表 q206_反转链表 双指针遍历/滑动窗口 q3_无重复字符...

    LeetCode题目分类与面试问题整理,附带所有java算法代码

    q387_字符串中的第一个唯一字符 链表操作 q2_两数相加 q19_删除链表的倒数第N个节点 q25_k个一组翻转链表 q61_旋转链表 q138_复制带随机指针的链表 q160_相交链表 q206_反转链表 双指针遍历/滑动窗口 q3_无重复字符...

    程序员面试攻略 part1(共2个)

    5.6 面试例题:整数/字符串之间的转换81 第6章递归算法87 6.1 面试例题:二分法搜索91 6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题...

    程序员面试攻略part 2(共2个)

    5.6 面试例题:整数/字符串之间的转换81 第6章递归算法87 6.1 面试例题:二分法搜索91 6.2 面试例题:字符串的全排列93 6.3 面试例题:字符串的全组合98 6.4 面试例题:电话键单词101 第7章其他程序设计问题...

    《剑指Offer》刷题笔记——面试题05. 替换空格

    通过先统计字符串中空格数量对数组扩展,然后按照题目要求扫描赋值。 ###### 代码主体 ###### class Solution: def replaceSpace(self, s: str) -&gt; str: s = [str(s[i]) for i in range(len(s))] count =

    leetcode第321题-javascript-tavascript:技术面试数据结构与算法练习题

    给定两个字符串删除所有字符以使其成为字谜 实践指数: anyString = 'Brave new world' 从头开始的第一个 o 的索引 从头开始的最后一个 w 的索引 “新”的索引从头开始 “新”的索引从末尾开始 找出总和等于目标的...

    go-leetcode:用go刷leetcode,已更新1400+常见面试算法题目,提供多种解题思路

    数学、字符串 Easy 完成 0005 14.最长公共前缀 字符串 Easy 完成 0006 20.有效的括号 栈、字符串 Easy 完成 0007 21.合并两个有序链表 链表 Easy 完成 0008 26.删除排序数组中的重复项 数组、双指针 Easy 完成 0009 ...

    leetcode迷宫问题-LeetCode:LeetCode刷题之剑指offer系列

    面试题01.06:字符串压缩 +2 查找+双指针 面试题03:数组中重复的数字 +2 查找 面试题04:二维数组中的查找 +2 有序矩阵查找 面试题05:替换空格 +2 查找 面试题06:从尾到头打印链表 +2 栈+双数组 面试题07:重建...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    熬夜整理Linux面试必备,Linux面试题和答案,以及详细解析!

    怎么向屏幕输出带空格的字符串,比如”helloworld”? 9、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令? 10、移动文件用哪个命令?改名用哪个命令? 11、复制文件用哪个命令?如果需要连同...

    google百度北电华为腾讯试题及面试

    2.一个长度为10000的字符串,写一个算法,找出最长的重复子串,如abczzacbca,结果是bc。最后就做出这一道题目,时间复杂度为O(n!), 空间复杂度为O(n)。 算法题: 1.连接两个单向链表,返回排序后的结果。 2.一个...

    java面试题

    84.7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+...

    fe-interview-handwrite:前端面试常见手写题整理

    ★★★字符串去除字符串首尾空格 ★算法算法需要掌握基本的数据结构,例如栈、队列、链表、树、排序算法等等,建议去 LeetCode 上刷题。不过不要为了刷题而刷题,最重要的是归纳与总结,刷十道不如一道刷十遍。归并...

    java面试题大全(2012版)

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    java面试宝典2012

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试笔试资料大全

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

Global site tag (gtag.js) - Google Analytics