删除字符串中的指定字符
题目
习题8-6 删除字符 (20 分)
本题要求实现一个删除字符串中的指定字符的简单函数。
函数接口定义:
void delchar( char *str, char c );
其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。
输入样例:
a
happy new year
输出样例:
hppy new yer
代码
这个题需要考虑很多情况
1.有空格,有删除
2.删除字符在首尾,长度超过20
3.删除后字符串为空
4.被删除的字符不存在
5.字符串为空
//正确答案:
#include<string.h>
#include <stdio.h>
#define MAXN 20void delchar( char *str, char c );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */void delchar( char *str, char c ){char str2[MAXN];int m =strlen(str);int i,j=0;for(i=0;i<=m;++i){if(str[i]=='\0'){str2[j]='\0';}if(str[i]==c){continue;}str2[j]=str[i];j++;}for(int i=0;i<=m;i++){str[i]=str2[i];}
}
int main()
{char str[MAXN], c;scanf("%c\n", &c);ReadString(str);delchar(str, c);printf("%s\n", str);return 0;
}
但是简单的后面移到前面的想法得到的答案是错的:
情况 | 答案 |
---|---|
sample等价,有空格,有删除 | 答案错误 |
删除字符在首尾,长度超过20 | 答案正确 |
删除后字符串为空 | 答案错误 |
被删除的字符不存在 | 答案正确 |
字符串为空 | 答案正确 |
//错误答案
#include<string.h>
void delchar( char *str, char c ){int m=strlen(str);for(int i=0;i<m;++i){if(str[i]==c){for(int j=i;j<m;++j){str[j]=str[j+1];} }}
}
以下这种也是错的:
情况 | 答案 |
---|---|
sample等价,有空格,有删除 | 答案正确 |
删除字符在首尾,长度超过20 | 答案错误 |
删除后字符串为空 | 答案正确 |
被删除的字符不存在 | 答案错误 |
字符串为空 | 答案正确 |
void delchar( char *str, char c ){char str2[MAXN];int m =strlen(str);int i,j=0;for(i=0;i<m;++i){if(str[i]=='\0'){str2[j]=str[i];}else if(str[i]!=c){str2[j]=str[i];j++;}}strcpy(str,str2);
}
删除字符串中的指定字符相关推荐
- 【PAT甲级 删除字符串中的指定字符】1050 String Subtraction (20 分) C++
题目 删除字符串中的另一个字符串包含的所有字符. 可以通过判断两个字符串是否为空,来稍微优化一下运行速度 题解C++ #include<iostream> #include<stri ...
- c语言怎么删除字符串中的指定字符_Java中你知道几种从字符串中找指定的字符的数量
遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比.下面先看循环遍历 循环遍历 private static int getNum(String originStr, String ta ...
- android 删除字符串中的指定字符
将"你好"删除: String str = "你好,小明"; String newStr = str.replace("你好"," ...
- python使用正则表达式删除字符串中的其它字符只保留数字和字母
python使用正则表达式删除字符串中的其它字符只保留数字和字母 #python使用正则表达式删除字符串中的其它字符只保留数字和字母 # Python code to demonstrate # to ...
- 删除字符串中重复的字符
描述 删除字符串中重复的字符 分析 方法一,蛮力法.两个循环,大循环每次从数组中取出一个字符,小循环重新遍历该数组是否含有该字符. 方法二:排序法.对两个字符串的字符进行排序,再比较. 方法三:空间换 ...
- 在字符串中查找指定字符
10-1. 在字符串中查找指定字符(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 白洪欢(浙江大学) 输入一个字符串S,再输 ...
- 删除字符串中的特定字符
当要删除字符串中的特定字符时,只需要用find()和erase()两个函数搭配使用即可,find()用于找到特定字符的位置,而erase()则用于删除该位置上的字符. find(c,pos)表示从po ...
- mysql更新 在字符串中的指定字符后面拼接字符串
mysql替换字符串中的指定字符 REPLACE()函数 -替换字符串的指定字符 UPDATE `表名` set `字段`=REPLACE( `字段`,'要被替换字符串的指定字符','替换后的指定字符 ...
- C语言学习笔记--删除字符串中特定的字符
题目:输入一个长度不超过100的字符串,然后输入一个字符,通过程序将字符串中该字符删除并输出最后的字符串,要求字符串存放在数组中,字符串的输入与输出,在主函数中实现删除字符,在自定义函数deletec ...
最新文章
- tabcontainer控件太长_AjaxControlToolKit--TabContainer控件的介绍收藏[摘录]
- 【循序渐进学Python】1. Python基础知识
- pyqt2_官网教程
- 2019年,50万大数据DT粉丝都爱的10本书
- 上传单.多个文件的函数封装
- Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解
- 最全,176个HFSS仿真实例模型文件分享
- 计算某一点绕另一点旋转一定角度后的坐标
- Re: 客户协作 OVER 合同谈判
- 为什么会显示贵州云服务器,为什么云服务器都在贵州
- Linux云计算虚拟化-使用rancher搭建k8s集群并发布电商网站
- wpsjs插件开发-采用js和wps交互功能
- 性能测试报告编写技巧
- U盘用来安装系统后无法打开
- 个人备案的网站能放企业服务器吗,个人及企业域名备案对网站有什么影响
- Python 十六进制,十进制转换
- 数学运算符 +(加)、-(减)、(乘)、(除)、%(取余;取模)、(整除)、(幂运算)及分支结构
- 智能计算机系统的概念,自动智能系统
- 网口调试基础之一网口phy驱动
- 实战商城app墨刀原型设计-商城简介
热门文章
- springboot工程的热部署
- python-cx_oracle报错“DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: “
- python导入mysqldb_Python导入MySQLdb报错
- JDBC中开启事务的批量插入操作
- java私塾 java篇_Java私塾跟我学系列——JAVA篇 五、
- matlab如何实现降维,matlab怎么把矩阵降维
- arduino 土壤温湿度传感器_【雕爷学编程】Arduino动手做(70)---土壤湿度传感器...
- count返回0_MySQL实战 | 14 为什么count(*)越来越慢?
- java final定义_Java中final关键字的用法
- Android投屏(屏幕共享)设计需要考虑的关键因素