| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6258 人关注过本帖
标题:字符串尾部的*号全部删除
只看楼主 加入收藏
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
字符串尾部的*号全部删除
程序代码:
void fun( char *a )
{
char *p = a ;
while(*p)
p++ ;
p-- ;
while(*p == '*')
p-- ;
p++ ;
*p = 0 ;
}
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内
容应当是:****A*BC*DEF*G。

这里的指标操作看不很懂 烦请先进解释
搜索更多相关主题的帖子: 字符串 
2012-08-16 15:14
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
void fun( char *a )
{
    char *p = a ;

    while(*p)
        p++ ;
    p-- ;

    while(*p == '*')
        p-- ;
    p++ ;

    *p = 0 ;
}
2012-08-16 15:21
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
收藏
得分:0 
回复 2楼 newdos
不能理解
可否将地址说明一下
2012-08-16 15:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
算法很简单 就是找字符串中第一个*把它变成0 字符串也就截断了 相当于去除了

    while(*p)
        p++ ;
这是找字符串的结尾 会停在结尾的0上


    p-- ;
最后一个字符


    while(*p == '*')
        p-- ;
从后往前找星号 停在星号前一个字符


    p++ ;
也就是第一个星号了


    *p = 0 ;
置为0 也就是截断


程序没缩进很难看 要注意啊。。

收到的鲜花
  • wiseley7472012-08-16 16:38 送鲜花  2朵   附言:我很赞同
2012-08-16 16:06
轮椅之星
Rank: 2
等 级:论坛游民
帖 子:18
专家分:42
注 册:2012-8-16
收藏
得分:2 
字符串实际是:****A*BC*DEF*G*******\0,第一个while循环结束后,p指向最后的'\0',p--后,p指向最后一个‘*’。第二个while循环是寻找G的位置。最后在G后面填上\0 字符串结束标志。
2012-08-16 16:06
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
如果你还不明白 建议你好好看书 因为这个代码算比较基础的了
2012-08-16 16:08
快速回复:字符串尾部的*号全部删除
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061565 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved