问题描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数:
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;
}
分享到:
相关推荐
标题中的“Code_笔试题_字符串压缩_”指的是一个与编程相关的笔试题目,重点在于实现字符串的压缩功能。这类问题通常出现在技术面试或招聘过程的笔试试题中,旨在考察应聘者的编程能力和对数据结构的理解。 描述中...
在本压缩包中,我们关注的是一个与Java编程和LeetCode相关的面试问题,具体是第1047题,题目要求删除字符串中的所有相邻重复项。这个问题主要涉及到字符串处理和栈(Stack)数据结构的应用。下面我们将深入探讨这个...
然后初始化`dp`表,逐位计算两个字符串的乘积,最后将结果转换为字符串并去除前导零。 这个解法的时间复杂度是O(m * n),其中m和n分别是两个输入字符串的长度,空间复杂度也是O(m * n)。在实际面试中,对于这种...
本资源摘要信息将涵盖 Oracle 数据库面试题目汇总的关键知识点,涵盖字符串操作函数、事务概念、查询系统时间、触发器的作用、数字函数、关系数据库系统与文件数据库系统的区别、触发器和存储过程的概念等方面。...
在本压缩包中,我们关注的是一个Python编程与算法相关的面试题目——LeetCode的第186题,题目名为“反转字符串中的单词II”。这道题主要考察的是字符串操作和数组处理技巧,对于Python程序员来说,是提升技能和准备...
- 使用`format()`函数或f-string进行字符串格式化,如`"Hello, {}!".format("world")`或`f"Hello, {name}!"`。 14. **面向对象编程(OOP)**: - OOP基于类和对象,主要特征包括封装、继承和多态。 - `class`...
- `trim()`:删除字符串首尾的空白字符。 - `valueOf(char[] data)`:将字符数组转换为字符串。 #### 重写clone方法的步骤 在Java中,通过实现`Cloneable`接口并重写`clone()`方法,可以创建对象的深拷贝或浅拷贝...
【Java面试题目】是华为2013年针对校招生进行的技术考核,涵盖了多项编程挑战。以下是这些题目涉及的关键知识点: 1. **字符串操作**: - 大写字母反序输出:这需要理解字符串的基本操作,如遍历字符串、大小写...
本题库是针对华为OD题目的练习资源,重点在于“截取字符串”这一编程技巧。下面我们将详细探讨这一知识点。 字符串截取是编程中的基本操作,无论是在Java、Python、C++还是其他编程语言中,都有相应的函数或方法来...
- `TRIM()`:去除字符串两侧的空格,也可指定特定字符进行裁剪。 - `SUBSTR()`:返回字符串的一部分。 - `INSTR(string, substring)`:返回子串在字符串中首次出现的位置,找不到则返回0。 - `REPLACE(original_...
1. **去除前导空格**:使用`String.trim()`方法去掉字符串的前导和尾部空格。 2. **检查正负符号**:检查第一个字符是否为'+'或'-',并根据情况设置一个标志位。 3. **转换数字部分**:从第二个字符(或第一个字符...
在本压缩包“java-leetcode题解之第415题字符串相加.zip”中,包含的是关于LeetCode第415题“字符串相加”(Add Strings)的Java解决方案。这道题目属于计算机编程领域,特别是Java语言的学习与算法实践。LeetCode是...
这个题目的解法展示了哈希表在解决查找和计数问题时的强大之处,也体现了在面试中如何运用数据结构优化算法的重要性。对于求职者来说,熟练掌握各种数据结构和算法,尤其是哈希表,能够显著提升面试成功率。
它在处理数组、字符串等数据集合时特别有用,能够简化代码并提高程序的可读性和可维护性。 7. **题目十**:“链表的描述” - 链表是由一系列节点组成的数据结构,每个节点包含数据部分和指向下一个节点的指针。...
第43题是关于字符串相乘的题目,这涉及到字符串处理和数学运算。在这个问题中,我们需要实现一个函数,将两个表示整数的非负字符串相乘,并返回它们的乘积作为字符串。 首先,我们来看一下这个问题的基本概念。字符...
以下是对给定的C#面试题目的详细解答: 1. **斐波那契数列**:题目要求使用递归算法计算斐波那契数列的第30位数。递归函数`Foo`通过检查输入的索引值来决定返回值,如果索引小于等于0,返回0;如果索引在1到2之间,...
【Java最新面试题目解析】 1、面向对象的特征: 面向对象编程(OOP)的核心特征包括抽象、继承、封装和多态性。 - 抽象:抽象是将复杂问题简化的过程,关注对象的关键特性和行为,忽略不重要的细节。抽象分为过程...
Oracle 数据库面试题目涉及到多个方面的知识点,以下是这些知识点的详细说明: 1. 字符串操作函数: - ASCII(): 返回字符串第一个字符的 ASCII 码值。 - CHR(): 将 ASCII 码转换为对应的字符,如果输入不合法,...
例如ASCII()用于获取字符的ASCII码,CHR()用于将ASCII码转换为字符,CONCAT()用于连接两个字符串,LOWER()和UPPER()分别用于转换字符串为小写和大写,LTRIM()、RTRIM()和TRIM()用于去除字符串两侧的空格,...
- 字符串函数:了解strlen、substr、strpos、str_replace、explode等函数的用法。 - 数组函数:掌握array_push、array_pop、array_merge、array_slice、foreach循环等处理数组的方法。 3. **文件与目录操作**: ...