标题:在数组中删去字符
只看楼主
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
结帖率:78.57%
已结贴  问题点数:20 回复次数:7 
在数组中删去字符
#include<stdio.h>
#include<string.h>
void fun(char s[],char c)
{
    int *p=s,*q,*t;
    while(*p++!='\0')
    {
        while(*p!=c)p++;
        q=p;t=++p;
        while(*q!='\0')*q++=*t++;
        *q='\0';
    }
}

main()
{
    char str[]="turbo c and borland c++";
    char ch;
    puts(str);
    scanf("%c",&ch);
    fun(str,ch);
    puts(str);
}
那里有问题啊?我要删去str中的ch字符,求大虾赐教
搜索更多相关主题的帖子: 删去 字符 
2010-09-12 23:13
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:5 
回复 楼主 功夫熊猫
 *q='\0';珊掉看看

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-12 23:26
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
得分:0 
#include<stdio.h>
#include<string.h>
void fun(char s[],char c)
{
    int *p=s,*q,*t;
    while(*p++!='\0')
    {
        if(*p!=c)continue;
        else

        q=p;t=++p;
        while(*q!='\0')
        *q++=*t++;
        
    }
}

main()
{
    char str[]="turbo c and borland c++";
    char ch;
    puts(str);
    scanf("%c",&ch);
    fun(str,ch);
    puts(str);
}
我修改了一下,还是有问题
2010-09-12 23:27
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:0 
不等于跳出?

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-12 23:37
佳嘉
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:534
专家分:1383
注 册:2009-11-8
得分:5 
#include<stdio.h>
#include<string.h>
void fun(char s[],char c)
{
   char  *p=s,*q,*t;
    while(*p++!='\0')
    {
        while(*p!=c&&*p!='\0')p++;
        q=p;t=++p;
        while(*q!='\0')*q++=*t++;
        *q='\0';
    }
}

main()
{
    char str[]="turbo c and borland c++";
    char ch;
    puts(str);
    scanf("%c",&ch);
    fun(str,ch);
    puts(str);
}
2010-09-12 23:40
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
得分:5 
#include<stdio.h>
#include<string.h>
void fun(char *p,char c)
{
    char *q,*t;
    while(*p!=c&&*p++!='\0')p++;
    q=p;t=++p;
    while(*q!='\0')*q++=*t++;
}

main()
{
    char str[]="turbo c and borland c++";
    char ch;
    puts(str);
    scanf("%c",&ch);
    fun(str,ch);
    puts(str);
    return 0;
}

清风拂暮(木)
2010-09-13 00:08
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
得分:0 
搞定了
2010-09-13 12:47
jiangkunhgnc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:76
专家分:185
注 册:2010-8-21
得分:5 
程序代码:
void fun(char s[],char c)
{
    int *p=s,*q,*t;
    while(*p++!='\0')
    {
        while(*p!=c)p++;
        q=p;t=++p;
        while(*q!='\0')*q++=*t++;
        *q='\0';
    }
}
你的函数有问题!p是指向一个整型数据的指针变量,在赋值过程中*p=s将你传过来的字符型数组名赋给了一个整型变量,这里就有问题;而且后面使用的while循环也有些问题,似乎不明白你的算法是怎样的.
2010-09-13 16:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320249-1-1.html




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

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