解决PTA题:找错误原因(3)6-6 删除字符
本题要求实现一个删除字符串中的指定字符的简单函数。
答案:
void delchar( char *str, char c )
{
int i,j;
for (i = 0; * (str + i) != '\0'; i++)if (*(str + i) == c){for (j = i; * (str + j) != '\0'; j++)*(str + j) = *(str + j + 1);i=-1;//一定不能少}
}
分析:
第一次我的代码如下:
void delchar( char *str, char c )
{
int i,j;
for (i = 0; * (str + i) != '\0'; i++)if (*(str + i) == c)for (j = i; * (str + j) != '\0'; j++)*(str + j) = *(str + j + 1);
}
短小精干,但是是错的。。。。
是因为在把后面的值往前移动的时候,忽略了对刚刚移到这个位置的值的判断
听不懂我们看个例子:
当输入的字符串为"abbcdefg"时,
i=0 * (str+i)='a' 与字符变量c不相等
不对字符串进行处理 -----> "abbcdefg"
i=1 * (str+i)='b' 与字符变量c相等
按照设想应该用后面的元素将其替换 -----> "abcdefg"
i=2 * (str+i)='c' 与字符变量c不相等
不对字符串进行处理 -----> "abcdefg"
你就会惊讶的发现,刚刚连续的两个字符’b'没有被判断。
解决方法:
就是在每次判断到相等后,移动完所有元素后,从头开始再开始判断,不可接着原来的顺序继续判断下去。
解决PTA题:找错误原因(3)6-6 删除字符相关推荐
- 网站服务器报403错误怎么解决办法,Http 403错误原因及解决办法
问题介绍 403是Web服务器返回的一种非常常见的错误代码,Http协议中对403错误定义如下, 403 Forbidden The server understood the request, bu ...
- 解决Android Studio Gradle 错误 编码GBK的不可映射字符
今天刚学习Android Studio这个IDE来写代码,然后在代码中加了中文注释导致无法编译: 提示错误:"错误: 编码 GBK 的不可映射字符". 经过查资料发现以下方法可成功 ...
- 解决PTA题:帅到没朋友
当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 答案: //思路在代码下 #include<stdio.h>void find ...
- win7“找不到该项目”的错误原因及解决方法
相信有很多网友经常会碰到在使用Windows7系统删除文件或者文件夹的时候,出现"找不到该项目"的错误提示.我想大家一定很有印象.这个时候大部分的人都可能再次点击"重试& ...
- ASP.NET常见错误,原因及解决方法(2003版)_不断更新.....
[标题] ASP.NET常见错误,原因及解决方法[错误提示] 异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败:Un ...
- 解决gradle下找不到符号错误
解决gradle下找不到符号错误 一.问题描述 在写代码的时候,发现编译的时候报了找不到符号错误 这个类是在common下的tools包里,项目中server依赖于common,我在serve ...
- 解决error while loading shared libraries: xxx.so.x类似问题办法和错误原因
解决error while loading shared libraries: xxx.so.x"类似问题办法和错误原因 编译Tengine时,执行make命令,出现以下错误: erro ...
- 找不到启动设备按任意键重新启动计算机,[已解决]硬盘3f0 /找不到启动设备错误...
引导设备是一种硬件,其中包含启动所需的文件. 该设备包括硬盘驱动器,软盘驱动器,CD-ROM驱动器,DVD驱动器和USB跳转驱动器. 任何与硬盘驱动器相关的计算机启动问题都会导致 硬盘3f0错误或找不 ...
- nginx 502错误原因和解决办法总结
nginx 502错误原因和解决办法总结 一.NGINX 502错误排查 二.Nginx 413错误的排查:修改上传文件大小限制 三.Nginx 400错误排查:HTTP头/Cookie过大 一.NG ...
最新文章
- vscode教程笔记
- git查看stash内容
- C++中输入一组数字 以换行符结束输入
- 160 - 44 defiler.1.exe
- 修复Bug大幅升级 Sun发布MySQL 5.1版
- tee:结果输出到文件同时也作为往后的输入信息
- 华东云友会主播栏目01期 阿里云X海底捞,千人千锅就是如此任性!
- html在线时间24小时代码,每24小时弹一次的HTML代码
- [C#基础]说说委托+=和-=的那些事
- 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇...
- 寻找最小term,自制面试题
- [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
- 【软件工程笔记】用例图、类图、ER图、系统流程图、软件结构图
- tftpd-hpa使用完全教程
- Linux下查看CPU、内存占用率
- requestLayout() improperly called by android.widget.GridView{43cefbd VFED.VC.. .F...... 0,0-2190,319
- 头条号:增加粉丝量 只需用四招!
- Mac 上怎么双开微信
- 计算机为何要用三级储存体系,计算机三级存储体系(1).ppt
- 什么是FPGA工程师的核心竞争力