| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖, 2 人收藏
标题:字符删除的问题
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏(2)
已结贴  问题点数:18 回复次数:3 
字符删除的问题
输入****adf**sd**sad***sa*******
运行程序后输出****adfsdsadsa*******.即只删除两端都是字母的连续*。
代码如下:
#include <stdio.h>

void  fun(char * a, char * h, char * p)
{
    char * s;

    s = h;
    while (  h != p )
    {   
        if (* h == '*')
        {
        s = h;
        while (* s != '\0')
            * s = * (++s);
        }
        else
            s = ++h;
    }
}

int  main ()
{
    char s[81], * t, * f;
    printf("Enter a string : \n");
    gets(s);
    t = f = s;
    while (* t)  t++; t--;
    while (* t == '*')  t--;
    while (* f == '*')  f++;
    fun(s, f, t);
    printf("The deleted string is :");
    puts(s);
    return 0;
}
但是我输入输入****adf**sd**sad***sa*******后回车没有任何反应,就算子函数把输入字符串搞的乱七八糟那也应该输出点东西吧,puts(s);貌似什么都没做?求解答。
搜索更多相关主题的帖子: 字母 运行程序 include Enter 
2011-12-24 11:51
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 beyondyf
........

梅尚程荀
马谭杨奚







                                                       
2011-12-24 16:11
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 4楼 倚楼听风雨
恩 是的。

梅尚程荀
马谭杨奚







                                                       
2011-12-24 16:37
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
#include <stdio.h>

void  fun(char * a, char * h, char * p)
{
    char * s;
   

    s = a;
    while (s <= h)
    {
        *(a++) = * (s++);
    }
    while (s <= p)
    {
        if (*s != '*')
            *(a++) = *s;
        s++;
    }
    while (*s != 0)
    {
        *(a++) = *(s++);
    }
    *a = 0;
}

int  main ()
{
    char s[81], * t, * f;
    printf("Enter a string : \n");
    gets(s);
    t = f = s;
    while (* t)  t++; t--;
    while (* t == '*')  t--;
    while (* f == '*')  f++;
    fun(s, f, t);
    printf("The deleted string is :");
    puts(s);
    return 0;
}
这个就可以
图片附件: 游客没有浏览图片的权限,请 登录注册
  比较发现要对形参a实施操作否则程序没反应?
不懂什么是正则匹配,它对实参形参之间的传递有影响?

梅尚程荀
马谭杨奚







                                                       
2011-12-25 08:51
快速回复:字符删除的问题
数据加载中...
 
   



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

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