H面试程序(25):在一个字符串中删除特定字符

程序员面试指南(第六章) 数组和字符串(C#版) 2.从字符串中删除指定的字符 (部分题目有所修改,部分C语言版本为C++语言版本)  2.从字符串中删除指定的字符,如从字符串this is an apple删除aeiou字符输出:ths s n pplC#版本static string RemoveChars(string str, string remove){ if(string.IsNullOrEmpty(str) || 阅读详情

 

V1.0

#include<stdio.h>
#include<assert.h>
#include<malloc.h>
#include<memory.h>

void Delete_specific_char(char * str1, char * str2)
{
   
   char * phash = (char *)malloc(sizeof(char)*256);
   assert(phash);
   memset(phash, 0, 256);

   int i = 0;
   while(str2[i] != '\0' )
   {
	   phash[str2[i++]] =1;
   }
   
   int newp = 0;
   i = 0;
   while(str1[i] != '\0' )
   {
	   if(phash[str1[i]] ==1)
	   {
		   i++;
	   }
	   str1[newp++] = str1[i];
	   i++;
   }
  str1[newp  ] ='\0';
   


  free(phash);
}

int main()
{   
 char a1[] = "they are student.";  
 char a2[] = "aeiou";
 Delete_specific_char(a1, a2);
 printf("%s",a1);
 printf("%s\n",a2);
 return 0 ;	
}


 

之前的

#include <stdio.h>
#include <malloc.h>
#include <assert.h>
#include <memory.h>

void Delete_specific_char(char * str1, char * str2)
{   
	assert(str1);
	assert(str2);
    char * phash = ( char * )malloc( sizeof(char)*256 );//先将str2在phash中映射一遍
	memset(phash,0,256);
	int i = 0;
	while ( str2[i] != '\0')
	{   
		phash[str2[i]] = 1;
		i++;
	}
	char * fast = str1;  //这个指针用来扫描str1
	char * slow = str1;  //这个指针用来修改str1,存放的是下一个待修改的位置
	int j = 0;
	while (fast[j]!= '\0')  //开始扫描str1
	{   
		if (phash[*fast] != 1)  //如果fast所指向的字母在str2中没有,fast,slow就都指向下一个
		{
             
			 *slow =*fast;
			 fast++;
			 slow++;
		}
		else     //如果fast所指向的字母在str2中存在,那么fast指向下一个
		{     
			 
		      fast++;
			  while (phash[*fast])//继续扫描,把连续的在str2中的字符都跳过,直到找到一个非str2中的字符
			  {
				  fast++;
			  }
			  *slow = *fast;  //将那个非str2的字符赋给slow当前所指向的字符  
			  slow++;   //继续扫描,
			  fast++;
		}
	}
	*slow = '\0';
	free(phash);
}

int main( )
{
   char a1[] = "they are  student. ";
   char a2[] = "aeiouac";

   Delete_specific_char(a1, a2);
   int i = 0;

   while (a1[i] !='\0')
   {
	   printf("%c",a1[i]);
	   i++;
   }
   printf(":\n");
   
   return 0;
}


 

 

关于程序员面试宝典中5.8节面试例题:编写一个函数,实现把C/C++程序代码中的注释去掉……答案的分析 因为马上要找工作了,所以,没事要看看程序员面试宝典,今天看到第5.8节(P41)程序设计的其他问题,自己思考了一下,然后看了看附带的答案,发现答案都看不太懂(大家都懂看别人的程序,没有注释,会看的很纠结),附带注释不多,看起来很吃力,看不懂,就百度,谷歌一下,看看有没有网友的分析,果然,有人分析过了,找了几篇带有注释的,然后研究下,发现按照注释来看,是明白了一点,但是觉得,有些地方分析的有错误,理 阅读详情

相关推荐

【面向对象的程序设计c++】从一个文本文件(txt)中删除所有指定的某个字符

「题目」从一个文本文件(txt)中删除所有指定的某个字符 【该资源仅供学习使用,不得用于其他目的】 @@@

C语言之字符串强化练习题

本关要求:如果两个字符串不相等,将短的字符串连接到长的字符串的末尾并输出新字符串,否则输出“相等”。本关要求:将任意一个大写字母,转换成小写字母并输出这个小写字母左右相邻的两个字母,以及它们的。输入格式:输入包括一行,是一个字符串(只包含数字和‘-’)。要求编写程序将字符串中的指定字符删去。输出格式:输出只有一行,转换后的整数。中某字符全部删去的小程序。

weixin_46305053的博客 1710

《计算机网络》复试问答题总结

DNS 是一个联机分布式数据库系统,负责主机名和 IP 地址之间的转换,需要进行域名查询的机器主动发起域名解析请求,域名服务器则随时准备做出响应。域名服务器的数据库中存放着它所管辖范围的主机名和 IP 地址之间的映射表,域名服务器之间又可以相互联络和协作,以便分布在 Internet 各个域名服务器数据库中的域名都能被有效地搜索,从而实现主机名与 IP 地址的映射。为了提高解析效率,使用了域名缓存技术。在服务器、主机中设置一个专用的内存缓冲区。服务器用来存放近期解析过的域名及其对应的 IP 地址的映射。

weixin_45971154的博客 2030

程序设计实训第一次作业---字符串删除

【问题描述】 编写程序将一行英文中指定的字符串删除后输出。注意:查找指定字符串时,大小写无关,而且有可能多次出现。 【输入形式】 先从标准输入中输入一指定字符串(其长度不超过20,该字符串中不会出现空格),然后在下一行输入一行英文(长度不超过200),行末有回车换行。 【输出形式】 将输入的英文删除指定字符串后输出到标准输出上,末尾应有一个回车换行;若删除后英文为空,则只输出一个回车...

爱写Bug 5472

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

本文详细介绍了如何使用Python爬虫快速抓取东方财富网的股票数据,包括环境配置、API分析、核心代码实现及优化技巧。通过简单的requests和pandas库,5分钟内即可获取高质量股票数据,适合量化交易和数据分析初学者。

weixin_29040367的博客 1187

程序员的自我修养

一个好的程序员的自我修养需要从不同角度出发,工作能力是一个方面,对自身的定位和了解也是一个方面,程序员的工作能力修养包括需求理解、功能设计、沟通确认、代码规范、成果验证、代码重构优化等,通过自我剖析来对自身进行定位并了解自身的优缺点,如去除劣根性、端正意识形态与态度、提升自己的核心竞争力等。 自我剖析 一个成功的人,必须要先了解自己,只有了解自己是什么样的人,了解自身有哪些优缺点,了解自己更合适做什么工作,知道自己做什么才能发挥出自身的优势,这样才能使自己在工作中发光发热,在职业生涯的道路上走的更远。

数通畅联 1678

学习笔记 数组实现删除字符

本关需要完成将字符串中某字符全部删去的小程序。

Zdethm的博客 1137

Vmware Vcenter7.0证书web续期发生错误

生成证书,选择第三个(PS,如果没有域名的,一定要写IP,不然很容易卡在85%,服务不能起来)这里大概率可能是证书里面的FQDN和主机不匹配,又或者是主机解析FQDN有问题。vCenter _MACHINE_CERT快到期了,通过web界面更新证书失败。vSphere Client 版本 7.0.2.00200。登陆ssh到vcenter,重新生成证书。先关掉HA,不然证书管理会报错。第一步先这样,重新续订一下证书。

m0_74823595的博客 3946

小程序(二) 指定字符串删除

问题描述:  在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数:  int delete_sub_str(const char *str, const char *sub_str, char *result_str) 【输入】 str:输入的被操作字符串          sub_str:需要查找并删除的特定子字符串 【输出】 result

alvin的博客 7134

EDA工具安装第一步:Synopsys Installer的配置与图形化界面使用详解

本文详细解析了EDA工具安装的关键第一步——Synopsys Installer的配置与使用。文章阐述了其作为统一部署管理器和依赖协调者的核心作用,并分步详解了如何通过图形化界面高效安装EDA工具,同时介绍了命令行批处理等进阶技巧,旨在帮助工程师快速搭建稳定的芯片设计环境。

zeta9的博客 342

openEuler Embedded新增软件包及在线安装软件方法

openEuler Embedded是基于Yocto构建的嵌入式操作系统,默认不包含dnf/apt软件包管理器,主要使用rpm格式。新增软件需通过manifest文件检查是否集成,未集成则需适配新配方。对于在线安装需求,可采用轻量级容器方案:通过isulad运行openEuler服务器版容器镜像,在容器内使用dnf命令安装软件(如Nginx),实现服务器生态兼容。部署前提包括设备支持、存储空间(≥10GB)和网络连接,需先安装并启动isulad服务。这种方法结合了嵌入式系统的轻量化特性和服务器系统的软件管理

专注嵌入式开发与 Linux 系统应用实战,分享芯片驱动、设备调试、系统工具开发干货。 1226

程序设计大作业---从字符串中删除字符(新)

问题描述】 编写程序实现删除字符串1中所有出现在字符串2中的字符,然后按照字符ASCII码从小到大的顺序输出字符串1中剩余的字符。 注意:两字符串都不含空格。 【输入形式】 从控制台输入两个字符串(在两行上),两个字符串的长度都不超过50个。 【输出形式】 按照ASCII码从小到大的顺序向控制台输出剩下的字符串,若没有剩下的字符,则输出字符串Empty。 【样例1输入】 BeiHa...

爱写Bug 3437

lattice Diamond Programmer程序下载

Lattice Diamond Programmer(支持Lattice FPGA与CPLD程序下载)

qq_44385725的博客 5188

程序员面试100题之36在字符串中删除特定的字符

// 程序员面试100题之36在字符串中删除特定的字符.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; /* * like hash table, fasten the search speed */ int _tmain(int argc, _TCHAR* argv[]) { char st

Creek Shi 516

如何使用freesurfer对T1w结构像进行分区指标的提取?——皮层面积,灰质体积,平均厚度,厚度标准差,平均曲率、高斯曲率、曲率指数、折叠指数

如何使用freesurfer对T1w结构像进行分区指标的提取?——皮层面积,灰质体积,平均厚度,厚度标准差,平均曲率、高斯曲率、曲率指数、折叠指数

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 3788

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

#2 判断一个字符串是否包含重复字符

「Google面试题」 【题目】 判断一个字符串是否包含重复字符。例如:“good”就包含重复字符‘o’,而“abc”就不包含重复字符 【题目分析】 对字符串进行遍历,统计每一个字符的个数,如果不为1则跳出遍历并返回True 【解答】 1 #!/Users/minutesheep/.pyenv/shims/python 2 # -*- coding: utf-8...

ab420036723的博客 826

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

js删除字符串最后一个字符_关于 JavaScript 字符串的一个小知识

说起字符串,我们再熟悉不过了。接触编程的第一个经典任务就是输出字符串:Hello, world。但是你知道 JavaScript 字符串在计算机里是怎么表示的吗?最简单直观但不太准确的的理解就是,字符串就是由英文字母、数字和标点符号等这些字符组成的序列。比如下面这个字符串就是由5个字母和一个感叹号组成的:constmessage='Hello!';同时也可以看出该字符串的字符数是6...

weixin_39650994的博客 174

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c++ string 删除第一个字符_OMG,12 个精致的 Java 字符串操作小技巧,学它

字符串可以说是 Java 中最具有代表性的类了,似乎没有之一哈,这就好像直播界的李佳琪,脱口秀中的李诞,一等一的大哥地位。不得不承认,最近吐槽大会刷多了,脑子里全是那些段子,写文章都有点不由自主,真的是,手不由己啊。字符串既然最常用,那就意味着面试官好这一口,就喜欢问一些字符串方面的编码技巧,来测试应聘者是否技术过硬,底子扎实,对吧?那这次,我就来盘点 12 个精致的 Java 字符串操作小技巧,...

weixin_31134719的博客 941

力扣刷题,Java字符串处理牛刀小试之反转字符串,反转字符串中的单词 III

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_83916355的博客 976

C++程序分享--常见算法/编程面试题:删除字符串中的数字并压缩字符串

C++程序分享--常见算法/编程面试题:删除字符串中的数字并压缩字符串

借雨醉东风的博客 154

在字符串中删除特定的字符 【微软面试100题 第六十三题】

题目要求:   输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符。例如,输入"They are students."和"aeiou",则删除之后的第一个字符串变成了"Thy r stdnts.". 题目分析:   1. 把第二个字符串的所有字符都存入一个set中;   2. 遍历第一个字符串的每个字符,同时判断是否该字符在set中,如果在就用后面不在set中且靠当前字符最近的字...

weixin_34228662的博客 112

H面试程序(7):去掉字符串中重复的数

之前的答案只能把字符串中不同的数字字符显示出来,现在这个可以把重复的字符从字符串中去掉   #include #include #include #include //50min void RemoveAllDuplicates(char seq[ ], int n) { assert(seq); int * phash = (int *)malloc( 10*siz

linuxlinuxlinuxlinux的专栏 1302

c语言字符串-常用操作(3)删除空格

删除空格也是面试常见问题,刚看到题一般写了个复杂度较高的,后来改进下复杂度降低,和大家分享下: #include /** * 删除字符串空格 */ void delSpace(char *str) { char *p = str; char *t =p; while (*p != '\0') { if (*p == ' ') {

fool宋的专栏 5640

ArmNN源码深度拆解:从架构到RK3588端侧性能调优

神经网络推理引擎是深度学习模型从训练框架走向实际硬件的关键桥梁。在边缘计算场景中,算力与内存受限,推理引擎必须紧贴底层硬件特性进行算子调度与内存复用,才能逼近理论性能上限。ArmNN作为Arm官方开源推理引擎,采用前端解析模型、后端映射硬件指令的编译式架构,自动完成常量折叠、算子融合等优化,并依托Arm Compute Library实现NEON和OpenCL加速。在RK3588平台上,结合Int8量化可带来40%以上的性能提升。从源码执行路径到多线程配置与校准数据选择,理解ArmNN的设计逻辑,有助于开发

weixin_34411563的博客 397

【程序员面试金典】面试题 01.06. 字符串压缩

【程序员面试金典】面试题 01.06. 字符串压缩

❀雾里看花花里看雾❀ 305
上一篇: H面试程序(16): 简单选择排序
下一篇: H面试程序(29):求最大递增数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值