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

题如下图所示

 


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

 代码如下 复制代码

#include<stdio.h>
#include<string.h>
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 <stdio.h>
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++;
        }
    }
}

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

时间: 2024-10-25 12:59:23

C字符串中删除指定字符几种算法的相关文章

js replace(a,b)之替换字符串中所有指定字符的方法_javascript技巧

如下所示: var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf var str2 = str.replace(/a/g, 'o'); alert(str2); //打印结果: obcodeocf, 注意: 此处replace的第一个参数为正则表达式,/g是全文匹配标识. 以上这篇js replace(a,b)之替换字符串中所有指定字符的方法就是小编分享给大家的全部内容了,

JAVA-String 中删除指定字符(11种方法)

JAVA老师给我们留了一个课后作业,要求我们通过搜索JDK用尽可能多的方法删除String类中的指定字符,我只想到了 11 种方法,如果有不足或者遗漏希望读者能够不吝赐教. 第一种方法 – 通过循环从前往后遍历,如果不是要删除的字符则加到处理后的字符串中,代码如下: public String deleteCharString0(String sourceString, char chElemData) { String deleteString = ""; for (int i =

PHP在字符串中查找指定字符串并删除

$a = "abcababa";$count=strpos($a,"ab");$str=substr_replace($a,"",$count,2); 输出结果:cababa代码虽短,但也算是一个小算法!

PHP在字符串中查找指定字符串并删除的代码_php技巧

$a = "abcababa"; $count=strpos($a,"ab"); $str=substr_replace($a,"",$count,2); 输出结果:cababa 代码虽短,但也算是一个小算法!

在字符串中删除特定的字符

转自:http://zhedahht.blog.163.com/blog/static/25411174200801931426484/ 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入"They are students."和"aeiou",则删除之后的第一个字符串变成"Thy r stdnts.". 分析:这是一道微软面试题.在微软的常见面试题中,与字符串相关的题目占了很大的一部分,因为写程序操作字符串能很好的反映

js替换字符串中所有指定的字符(实现代码)_javascript技巧

第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志). replace() The replace() method returns the string that results when you replace text matching its first argumen

在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现

问题描述 在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现 在字符串中寻找指定的字符,并且返回它的下标,要求用递归实现,怎么做,C语言 解决方案 #include <stdio.h> int foo(char * s, char f, int acc) { if (s[acc] == '') return -1; if (s[acc] == f) return acc; return foo(s, f, acc + 1); } int main() { char s[] = &quo

c语言 字符-从键盘输入任意一个字符串和一个字符,要求从该字符串中删除所有该字符。

问题描述 从键盘输入任意一个字符串和一个字符,要求从该字符串中删除所有该字符. 题目要求 Problem Description 从键盘输入任意一个字符串和一个字符,要求从该字符串中删除所有该字符. Input 输入有多组测试数据. 每组两行,第一行是字符串(字符串至少还有一个字符,不多于100个),第二行是一个字符 Output 每组输出一行,删除了所有应删除字符后的字符串 Sample Input ABCDE E ASD Dfg fhd D Sample Output ABCD AS fg

c++-编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定字符后输出该字符串。

问题描述 编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定字符后输出该字符串. 编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定字符后输出该字符串.例如,输入"jiangsu123"和删除位置5,则输出"jiansu123". 解决方案 #include <iostream> #include <string> using namespace std; int main() { char s1[100];