| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1839 人关注过本帖
标题:如果是连续的几个字符怎么删除,变量C在判断条件里怎么表达
只看楼主 加入收藏
BBOY愿愿
Rank: 3Rank: 3
来 自:四川
等 级:论坛游民
威 望:9
帖 子:60
专家分:67
注 册:2015-12-9
结帖率:28.57%
收藏
已结贴  问题点数:20 回复次数:4 
如果是连续的几个字符怎么删除,变量C在判断条件里怎么表达
/*①由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    int i,l,n,t;
    char a[100];
    char c;
    printf("输入一个字符:\n");
    scanf("%c",&c);
    printf("输入一串字符:\n");
    scanf("%s",&a);
    l=strlen(a);
    for(i=0;i<l;i++)
    {
      if(a[i]=='c')
       {
        a[i]=' ';
        n=i;
        for(t=n;t<l;t++)
         {
          a[t]=a[t+1];
         }
         
       }
      
    }
    printf("%s",a);
    getch();
    return 0;
}
谢谢..............................................
2015-12-09 20:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
如果你用的是符合C标准的编译器
程序代码:
#include <stdio.h>

int main( void )
{
    char a, b[100];
    if( scanf("%c",&a)!=1 || scanf("%99s",b)!=1 )
        return 1;

    for( char *p1=b,*p2=b; *p2!=a?*p1++=*p2++:*p2++; );

    printf( "%s\n", b );
    return 0;
}

如果你用的是破烂编译器
程序代码:
#include <stdio.h>

int main( void )
{
    char a, b[100];
    scanf( "%c", &a );
    scanf( "%99s", b );

    {
        char *p1=b, *p2=b;
        do
        {
            if( *p2 != a )
                *p1++ = *p2;
        }
        while( *p2++ );
    }

    printf( "%s\n", b );
    return 0;
}

2015-12-10 09:00
Lucky01
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:27
注 册:2015-11-14
收藏
得分:10 
我帮你修改了一下你编程中出现的错误,自己看一下错在哪里
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    int i,l,n,t;
    char a[100];
    char c;
    printf("输入一个字符:\n");
    scanf("%c",&c);
    printf("输入一串字符:\n");
    scanf("%s",a);//字符串的输入无需&符号,而字符的输入需要&符号
    l=strlen(a);
    for(i=0;i<l;i++)
    {
      if(a[i]==c)//a[i]是与字符变量c比较,是否相等
       {
        //a[i]=' ';这是多余的无需把a[i]赋空格,它仍可以删除
        n=i;
        for(t=n;t<l-1;t++)//如果t<l的话,后面执行t+1时会越界
         {
          a[t]=a[t+1];
         }
         l=l-1;//每删除一个相同的字符就需要把字符串a的长度减1
       }
      
    }
    a[l]='\0';
    printf("%s",a);
    getch();
    return 0;
}
2015-12-13 02:13
BBOY愿愿
Rank: 3Rank: 3
来 自:四川
等 级:论坛游民
威 望:9
帖 子:60
专家分:67
注 册:2015-12-9
收藏
得分:0 
回复 2楼 rjsp
灰常感谢!
但是我是个初学者
那个是不是用的指针类型

其实你可以很优秀------对自己说-----即使遍体鳞伤也要活得漂亮-------
2015-12-27 11:12
BBOY愿愿
Rank: 3Rank: 3
来 自:四川
等 级:论坛游民
威 望:9
帖 子:60
专家分:67
注 册:2015-12-9
收藏
得分:0 
回复 3楼 Lucky01
谢谢!
懂了
很清楚
谢谢!

其实你可以很优秀------对自己说-----即使遍体鳞伤也要活得漂亮-------
2015-12-27 11:13
快速回复:如果是连续的几个字符怎么删除,变量C在判断条件里怎么表达
数据加载中...
 
   



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

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