本题要求实现一个删除字符串中的指定字符的简单函数。

 答案:

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 删除字符相关推荐

  1. 网站服务器报403错误怎么解决办法,Http 403错误原因及解决办法

    问题介绍 403是Web服务器返回的一种非常常见的错误代码,Http协议中对403错误定义如下, 403 Forbidden The server understood the request, bu ...

  2. 解决Android Studio Gradle 错误 编码GBK的不可映射字符

    今天刚学习Android Studio这个IDE来写代码,然后在代码中加了中文注释导致无法编译: 提示错误:"错误: 编码 GBK 的不可映射字符". 经过查资料发现以下方法可成功 ...

  3. 解决PTA题:帅到没朋友

    当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人.  答案: //思路在代码下 #include<stdio.h>void find ...

  4. win7“找不到该项目”的错误原因及解决方法

    相信有很多网友经常会碰到在使用Windows7系统删除文件或者文件夹的时候,出现"找不到该项目"的错误提示.我想大家一定很有印象.这个时候大部分的人都可能再次点击"重试& ...

  5. ASP.NET常见错误,原因及解决方法(2003版)_不断更新.....

    [标题]             ASP.NET常见错误,原因及解决方法[错误提示]    异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败:Un ...

  6. 解决gradle下找不到符号错误

    解决gradle下找不到符号错误 一.问题描述 ​ 在写代码的时候,发现编译的时候报了找不到符号错误 ​ 这个类是在common下的tools包里,项目中server依赖于common,我在serve ...

  7. 解决error while loading shared libraries: xxx.so.x类似问题办法和错误原因

      解决error while loading shared libraries: xxx.so.x"类似问题办法和错误原因 编译Tengine时,执行make命令,出现以下错误: erro ...

  8. 找不到启动设备按任意键重新启动计算机,[已解决]硬盘3f0 /找不到启动设备错误...

    引导设备是一种硬件,其中包含启动所需的文件. 该设备包括硬盘驱动器,软盘驱动器,CD-ROM驱动器,DVD驱动器和USB跳转驱动器. 任何与硬盘驱动器相关的计算机启动问题都会导致 硬盘3f0错误或找不 ...

  9. nginx 502错误原因和解决办法总结

    nginx 502错误原因和解决办法总结 一.NGINX 502错误排查 二.Nginx 413错误的排查:修改上传文件大小限制 三.Nginx 400错误排查:HTTP头/Cookie过大 一.NG ...

最新文章

  1. vscode教程笔记
  2. git查看stash内容
  3. C++中输入一组数字 以换行符结束输入
  4. 160 - 44 defiler.1.exe
  5. 修复Bug大幅升级 Sun发布MySQL 5.1版
  6. tee:结果输出到文件同时也作为往后的输入信息
  7. 华东云友会主播栏目01期 阿里云X海底捞,千人千锅就是如此任性!
  8. html在线时间24小时代码,每24小时弹一次的HTML代码
  9. [C#基础]说说委托+=和-=的那些事
  10. 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇...
  11. 寻找最小term,自制面试题
  12. [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
  13. 【软件工程笔记】用例图、类图、ER图、系统流程图、软件结构图
  14. tftpd-hpa使用完全教程
  15. Linux下查看CPU、内存占用率
  16. requestLayout() improperly called by android.widget.GridView{43cefbd VFED.VC.. .F...... 0,0-2190,319
  17. 头条号:增加粉丝量 只需用四招!
  18. Mac 上怎么双开微信
  19. 计算机为何要用三级储存体系,计算机三级存储体系(1).ppt
  20. 什么是FPGA工程师的核心竞争力

热门文章

  1. 【每日早报】2019/12/30
  2. NAS:云平台NAS服务的构建
  3. 数论专题(1)数论函数,整数分块
  4. 从单片机到嵌入式开发——(9) 从8051到ARM——STM32介绍和基本使用
  5. P1768 天路(最优比率环)
  6. [BZOJ 1011][HNOI2008]遥远的行星(奇技淫巧)
  7. 第四章 用户目录,SIP和 Verto
  8. ubuntu 18.0.4安装无线网卡驱动
  9. 一个真实的项目经历,很多东西大家可以借鉴下
  10. 做一个下花痴又有什么关系?