| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1699 人关注过本帖
标题:一道C语言试题,不知道错在哪里了,大神求指教
只看楼主 加入收藏
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 8楼 wp231957
不好意思啊,我刚学C语言,您说的我有点看不懂,能不能举个例子说明一下,谢谢啊
2017-03-21 14:05
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 10楼 wp231957
我想的是把m[81]再把值给char*a,让他返回主函数;这样也不行吗(我刚接触C语言,显得比较外行,请见谅啊)
2017-03-21 14:10
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 10楼 wp231957
我是想把m[81]的值再给指针a所指的数列,这样子也不对吗?
2017-03-21 14:14
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:7 
回复 13楼 是2014
指针有些地方用得不合理,修改了一下:
#include <stdio.h>
void fun(char *a, char *p)
{
    char *aa=a;
    char m[81]= {'0'};
    char *q=m;
    //int j=0;
    while(a<p)
    {
        if(*a!='*')
            *q++=*a;
        a++;
    }
    while(*a)
    {
        *q++=*a;
        a++;
    }
    *q='\0';
    q=m;
    while(*q)
        *aa++=*q++;
    *aa='\0';
}
main()
{
    char s[81],*t;
    //void NONO ();
    printf("Enter a string:\n");
    gets(s);
    t=s;
    while(*t)t++;
    t--;
    while(*t=='*')t--;
    fun(s , t);
    printf("The string after deleted:\n");
    puts(s);
    //NONO();
}

化简些的话可以这样:
#include <stdio.h>
char *fun(char *s)
{
    char *p1, *p2;
    for (p1=p2=s; *p1; p1++)
        if (*p1 != '*')
            *p2++ = *p1;
    for(--p1; *p1=='*' && p1>=s; p1--)
        *p2++ = *p1;
    *p2 = 0;
    return s;
}
main()
{
    char s[81];
    printf("Enter a string:\n");
    gets(s);
    fun(s);
    printf("The string after deleted:\n");
    puts(s);
}


[此贴子已经被作者于2017-3-21 14:41编辑过]

2017-03-21 14:32
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 14楼 吹水佬
char *aa=a;
    char m[81]= {'0'};
    char *q=m;
    //int j=0;
    while(a<p)
    {
        if(*a!='*')
            *q++=*a;
        a++;
    }
    while(*a)
    {
        *q++=*a;
        a++;
    }
    *q='\0';
    q=m;
    while(*q)
        *aa++=*q++;
    *aa='\0';
我的错误是不是就是少了这些别标为红色的字句,这些字句的作用是把指针重写指回开头对不?
2017-03-21 14:46
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 14楼 吹水佬
我理解的对不,大神
2017-03-21 14:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:0 
回复 15楼 是2014
是的,在m转到a时指针没用对。
2017-03-21 14:48
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 17楼 吹水佬
谢谢大神啊
2017-03-21 14:55
快速回复:一道C语言试题,不知道错在哪里了,大神求指教
数据加载中...
 
   



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

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