标题:删除字符串中的字符
只看楼主
ASTROTUNG
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-19
结帖率:75%
已结贴  问题点数:20 回复次数:2 
删除字符串中的字符
大家帮我改改程序啊///新手好无力  谢谢啦
删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除。


【输入形式】输入一个字符串s和一个字符c
【输出形式】将字符串s中出现的所有字符c删除后的字符串
【样例输入】happy new year

                        a
【样例输出】hppy new yer
#include
int main(void)
{
 char s[100];
  char c;
  void delchar(char *str,char c);
  scanf("%s",s);
  scanf("%c",c);
  
  delchar(s,c);
  printf("%s",s);
  return 0;
}
void delchar(char *str,char c){
     char *p,*q;
     p=str;
     while(*p!=0)
     {if(*p=c)
     {q=p;
     while(*q!=0)
      {*q=*(q+1);q++;}
      *q='\0';
      }
      if(*p!=c)
      p++;
      }
      }



搜索更多相关主题的帖子: 字符串 happy 
2011-12-06 20:32
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:5 
我的理解是这样,采用链式存储会方面些。
然后假设有char *head,*p,*q;q=p=head=s;
while(p&&p->ch!='c')
{      
         q=p;
        p=p->next;   //p为待删除节点,Q为前驱
}
if(!q&&p->ch=='c')  //如果删除的是第一个节点。
    head=head->next

~~我的明天我知道~~
2011-12-06 21:06
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:15 
#include <stdio.h>
void delchar(char *str,char c);

int main(void)
{
    char s[100];
    char c;

    printf("请输入一个字符串:\n");
    fgets(s, 100, stdin);
    printf("输入要删除的字符:\n");
    scanf("%c",&c);

    delchar(s,c);
    printf("删除后的字符串:\n%s\n",s);
    return 0;
}
void delchar(char *str,char c)
{
    char *p,*q;

    p=str;
    while( *p != 0)
    {
        if(*p == c)
        {
            q = p;
            while(*q != 0)
            {
                *q = *(q + 1);
                q++;
            }
            *q='\0';
        }
        if(*p != c)
            p++;
    }
}

我们都在路上。。。。。
2011-12-07 11:21



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




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

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