用C语言编写一完整源程序,从键盘输入一个字符串Str1,在新的一行输入一个待检测字符Char_Che

用C语言编写一完整源程序,从键盘输入一个字符串Str1,在新的一行输入一个待检测字符Char_Check,在Str1中检测字符Char_Check,删除检测到的字符,并在新的一行显示处理后的字符串Str1。

#include "stdio.h"

#include "string.h"

void deleteChar(char *a,char c)//从特定字符串中删除特定字符

{

     int i; char *d=NULL;

     if((d=strchr(a,c))!=NULL)//找到这个字符,从后一位向前移位,将其覆盖,达到删除的目的

     {

          for(i=0;*(d+i)!=0;i++)

           *(d+i)=*(d+i+1);

     }

 

}

int main()

{

     char Str1[100]={0};

     char Char_Check;

     int i;

     gets(Str1);

     scanf("%c",&Char_Check);

     for(i=0;i<strlen(Str1);i++)//一次只能删除一个特定字符,循环删除,最多循环字符串最大长度

          deleteChar(Str1,Char_Check);

      puts(Str1);

 

}

运行结果:

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-03
#include<stdio.h>
int main(){
    char str[1000],c;//定义字符串str和字符c
    int i=0,j;//定义循环变量
    printf("请输入字符串Str1:"); 
    gets(str);//输入字符串str
    printf("请输入字符Char_Check:");
    scanf("%c",&c);//输入字符c
    for(i=0;str[i]!='\0';i++)
if(str[i]==c)//判断字符串str中的字符是否与c相同
     for(j=i;str[j]!='\0';j++)
     str[j]=str[j+1];//如果相同,字符依次向前移动覆盖(相当于删除) 
    printf("删除后的字符串为:");
    puts(str);
}

运行结果如图:

第2个回答  2013-03-16
#include <stdio.h>
void del_str( char *str , char ch)
{
char *tmp,*p;
tmp=p=str ;
while( *tmp )
{
if ( *tmp != ch )
*p++=*tmp ;
tmp++ ;
}
*p=0x00;
}
int main()
{
char Str1[128],Char_Check;
gets( Str1 );
Char_Check=getchar();
del_str(Str1,Char_Check) ;
printf("%s\n" , Str1 );
return 0;
}本回答被提问者和网友采纳
第3个回答  2013-03-16

    #include <stdio.h>

    #include <string.h>

    #include <assert.h>

    int RemoveChar(char *pstr, char ch)

    {

    int len = strlen(pstr);

    assert(pstr != NULL);

    while (len-- > 0) {

    if (*pstr == ch){

    strncpy(pstr, pstr+1, len);

    continue;

    }

    pstr++;

    }

    *pstr = '\0';

    return 1;

    }

    #define MAXLEN  128

    int main(void)

    {

    char pstr[MAXLEN] = {0};

    char ch;

    printf("Please enter the string: ");

    gets(pstr);

    printf("\nPlease enter the char: ");

    scanf("%c", &ch);

    RemoveChar(pstr, ch);

    printf("\nAfter: %s\n", pstr);

    return 0;

    }


第4个回答  2013-03-16

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网