免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: wilbur8415
打印 上一主题 下一主题

[C] How to del a character from a string? [复制链接]

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
31 [报告]
发表于 2008-04-09 09:37 |只看该作者
原帖由 gaochang2008 于 2008-4-9 09:34 发表
设置2个临时变量 不就得了,,对于may not 需要进行实验 ,但是使用临时变量进行strcpy一定是 must

这样开销就大多了

论坛徽章:
0
32 [报告]
发表于 2008-04-10 17:09 |只看该作者
不用实验阿,看看strcpy代码咋实现的不就完了吗?
char *strcpy(char *dest, const char *src)
{
    char *tmp = dest;

    while ((*dest++ = *src++) != '\0')
        /* nothing */;
    return tmp;
}

论坛徽章:
0
33 [报告]
发表于 2008-04-10 18:37 |只看该作者
原帖由 dpsuffix 于 2008-4-10 17:09 发表
不用实验阿,看看strcpy代码咋实现的不就完了吗?
char *strcpy(char *dest, const char *src)
{
    char *tmp = dest;

    while ((*dest++ = *src++) != '\0')
        /* nothing */;
    return t ...


不能假设所有版本的libc的strcpy的都是这样实现的吧.

论坛徽章:
0
34 [报告]
发表于 2008-04-11 11:56 |只看该作者
may not 应该是翻译为不可以,禁止性质的!

论坛徽章:
0
35 [报告]
发表于 2008-04-11 13:02 |只看该作者

回复 #1 wilbur8415 的帖子

void DeleteChar(char *pStr, char cBeDlt)
{
        char *pRead, *pWrite;
       
        pRead = pStr;
        pWrite = pStr;
        while (*pRead != '\0')
        {
                if (*pRead != cBeDlt)
                {
                        *pWrite++ = *pRead++;
                        continue;
                }
                pRead++;
        }
        *pWrite = *pRead;
}
我觉得我这个效率还行吧,^_^

[ 本帖最后由 alickexu 于 2008-4-13 00:01 编辑 ]

论坛徽章:
0
36 [报告]
发表于 2008-04-12 18:34 |只看该作者
原帖由 思一克 于 2008-4-8 10:59 发表
c = 'e';
cp = strchr(str, c);
if(cp)
    strcpy(cp, cp+1);

妙!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP