C++问题:将某一指定字符从一个已知的字符串中删除。代码如下:

[复制链接]
查看11 | 回复3 | 2012-2-6 20:41:00 | 显示全部楼层 |阅读模式
程序我运行过,可以运行但是有一些瑕疵,你的要求是“将某一指定字符从一个已知的字符串中删除”,但这个程序的缺点在于它会删除全部的指定字符,如你输入“good”,然后再输入“o”,结果是“gd”,这显然与删除一个指定字符的要求不符合。下面是对你问题的解答:1.字符串的删除函数中,if语句之后*q++=*p,这里的*p是指针里的第二个值吗?答:*p是一个字符,p才是指针。2.for语句第一条件为空具体是怎么执行下面的内容的?答:for语句第一条件只在循环开始的时候用一次,用与给赋初值,可以省略第一条件。然后到第二条件进行判断,若第二条件为真时执行循环体里的语句,然后执行第三条件,再判断第二条件是否为真,若真继续执行循环体....以此类推...
回复

使用道具 举报

千问 | 2012-2-6 20:41:00 | 显示全部楼层
不是重复赋值,*q++=*p是在if语句判断的前提再赋值的,虽然两个指针都是指向同一个数据区域,但是默认指向的都是字符串的首地址,当q偏移地址时,p并不一定跟着一起偏移,通过if语句的判断,来去掉x这个相应的值后在加上结尾符,for循环可以省略第一个表达式但不能省略“;”的分隔符;...
回复

使用道具 举报

千问 | 2012-2-6 20:41:00 | 显示全部楼层
LZ去好好学习一下指针吧 str是字符串头本质也是指针 跟p q的性质是一样的 这三个指针指向同一个字符串 所以他们修改内容是共享的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行