一聚教程网:一个值得你收藏的教程网站

热门教程

C字符串中删除指定字符几种算法

时间:2022-06-25 04:53:32 编辑:袖梨 来源:一聚教程网

题如下图所示

 

C字符串中删除指定字符几种算法


题目意思很明显了,我们的思路其实也挺简单的,换句话说,删掉一个然后重构数组,补上那个空,一个个字符推进一格就行了嘛,不用想得太复杂(简单的来说就是偷懒)。

 代码如下 复制代码

#include
#include
void delchar(char s[], char c);
int main(void)
{
 char c;
 char s[80];
 printf("Input a string: ");
 gets(s);
 printf("Input a char: ");
 scanf("%c", &c);
 delchar(s, c);
 printf("After deleted,the string is:%s", s);
 return 0;
}
void delchar(char s[], char c)
{
 int a, b, e;
 e = strlen(s);
 for(a=0; a < e; a++) {
 if(s[a] == c) {
 for(b = a; b < e; b++)
 s[b] = s[b + 1];
 a = a - 1;
 }
 }
}

算法二

 代码如下 复制代码

#include
char fun(char str[20],char ch)
{   int i,j;
    for(i=0;str[i]!='\0';i++)
      if(str[i]==ch) {for(j=i;str[j]!='\0';j++) str[j]=str[j+1]; }
}
void main()
{  char str[20],ch;
   printf("enter a string :");
   gets(str);
   printf("enter you want delete letter : ");
   ch=getchar();
   fun(str,ch);
   printf("%s",str);

}

算法三

比如删除指定的字符在字符串中第一个出现的位置

 代码如下 复制代码
void strdel( char* str, char ch )
{
    char *p = str;
    while( *p )
    {
        if( *p==ch )
            break;
    }
    if( *p )
    {
        while( *p )
        {
            *p==*(p+1);
            p++;
        }
    }
}

程序是同学问我了之后我改的,所以不必太在意和我的风格不符=。=

热门栏目